非クライアント領域を非表示しない方法

解決


まは  2013-02-11 05:06:18  No: 73615

現在、クライアント領域のみのソフトを作成しようとしているのですが、
非クライアント領域を表示しないようにする方法がわからなくて困っています。
似たソフトとしては付箋ソフトのようなものを作りたいと思っています。
解決方法がわかる方よろしくお願いします。
開発環境はVS2010のC++です。


瀬戸っぷ  2013-02-11 09:07:12  No: 73616

>開発環境はVS2010のC++です。

APIなんですかね?
CreateWindow()、またはCreateWindowEx()で指定するスタイルによる…かと思われますが。
WS_POPUP | WS_VISIBLE
ってところでしょうか…。


Ryo  2013-02-12 21:02:03  No: 73617

WM_NCCALCSIZEで、クライアント領域を最大まで増やすのは
どうでしょう


まは  2013-02-13 07:38:26  No: 73618

ありがとうございます
試してみます


瀬戸っぷ  2013-02-13 18:34:10  No: 73619

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の戻り値を変更することで…一応ドラッグ移動できるようにはなりますが。


zeek  2013-02-21 04:45:14  No: 73620

> 似たソフトとしては付箋ソフトのようなものを作りたいと思っています。
付箋ソフトとなるとタスクバーにアイコンを表示したくないですよね?
そうであれば
hWnd = CreateWindowEx(WS_EX_TOOLWINDOW, szWindowClass, szTitle, WS_VISIBLE | WS_POPUP, ...);
が良いと思います。


まは  2013-03-12 05:55:06  No: 73621

適当な質問にいっぱい回答有り難うございます。
全て試させて頂きます。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加