0

グローバルを使用せずにwinMainのHWNDhwndのhInstanceアプリケーションハンドルを取得するにはどうすればよいですか?LRESULT CALLBACKに送信するダイアログボックスを作成して、特定のメニュー項目を表示させようとしています。または、これを設定する別の方法です。私はすでにグローバルでそれを行いましたが、私が試したLRESULTCALLBACK内でそれを設定する方法を理解できないようです

HINSTANCE hInst = (HINSTANCE)GetWindowLongPtr(hwnd, GWL_HINSTANCE);
HWND hDlgbox = CreateDialog(hInst, MAKEINTRESOURCE(ID_TOOL_BOX_CREATE) ,hwnd, ToolProc);

wndprocで表示されますが、ポップアップメニュー項目を使用して開こうとすると、ボタンと項目がダイアログボックスでメッセージを受信しないように見えますが、wndprocでこのようにすると、一度しか表示されなくなります。

4

1 に答える 1

0

だから私がしたのはメインの勝利でした

HWND hdlg;

wndextraをhwndのサイズに設定します。

次に、dlgボックスを作成します。

SetWindowLongPtr(hwnd, 0, (LONG_PTR)hdlg);

そしてwinprochwndsomenewDlg

somenewDlg = (HWND)GetWindowLongPtr(hwnd, 0);

于 2012-12-08T06:38:56.173 に答える