現在、クライアント領域のみのソフトを作成しようとしているのですが、
非クライアント領域を表示しないようにする方法がわからなくて困っています。
似たソフトとしては付箋ソフトのようなものを作りたいと思っています。
解決方法がわかる方よろしくお願いします。
開発環境はVS2010のC++です。
>開発環境はVS2010のC++です。
APIなんですかね?
CreateWindow()、またはCreateWindowEx()で指定するスタイルによる…かと思われますが。
WS_POPUP | WS_VISIBLE
ってところでしょうか…。
WM_NCCALCSIZEで、クライアント領域を最大まで増やすのは
どうでしょう
ありがとうございます
試してみます
VC++2010 EEで、Win32プロジェクトを作成してできたスケルトンで…下記の変更を行うとクライアント領域だけのウィンドウが作れます。
# とは言え、真っ白なウィンドウが表示されるだけですが。
MyRegisterClass()でウィンドウクラスを登録する際にメニューをNULLにする。
wcex.lpszMenuName = NULL;
に変更。
InitInstance()でウィンドウを作成する際にWS_POPUPにする。
# 始点座標にCW_USEDEFAULTを指定すると…デスクトップ内に出てこないかも知れませんが…。
hWnd = CreateWindow(szWindowClass, szTitle, WS_POPUP, 100, 100, 200, 200, NULL, NULL, hInstance, NULL);
タイトルバーがないので、ウィンドウをドラッグして移動させる。
ということが出来ませんのでご注意を。
# WM_NCHITTESTの戻り値を変更することで…一応ドラッグ移動できるようにはなりますが。
> 似たソフトとしては付箋ソフトのようなものを作りたいと思っています。
付箋ソフトとなるとタスクバーにアイコンを表示したくないですよね?
そうであれば
hWnd = CreateWindowEx(WS_EX_TOOLWINDOW, szWindowClass, szTitle, WS_VISIBLE | WS_POPUP, ...);
が良いと思います。
適当な質問にいっぱい回答有り難うございます。
全て試させて頂きます。