コンボボックスに新しい文字列を挿入できるように、実行時にリソース定義で作成されたCOMBOBOX
コントロールの高さを変更するにはどうすればよいですか?文字列挿入コードは動作していますが、コンボボックスの固定高さをリソース定義(たとえば28単位)に設定した場合のみです。しかし、文字列の数が動的なので、これは便利ではありません。コンボボックスの高さの変更
私は、実行時にダイアログを作成することができることを知っているが、その後、私は、ダイアログ単位を使用することはできません、とリソースがはるかに効率的です...ここで
は私のコードを簡略化したバージョンです。
リソースファイル:
IDD_SETTINGS DIALOG 0, 0, 100, 100
BEGIN
COMBOBOX IDC_COMBO, 0, 0, 100, 14, CBS_DROPDOWNLIST
END
メインウィンドウやダイアログのウィンドウプロシージャ:
BOOL CALLBACK WndProcSettings(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_INITDIALOG:
//...
break;
default:
return FALSE;
}
return TRUE;
}
LRESULT CALLBACK WndProcMain(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_SETTINGS:
DialogBox(hInstance, MAKEINTRESOURCE(IDD_SETTINGS), hWnd, WndProcSettings);
break;
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return(0L);
}
意味が明確ではありません。 この「コンボボックスコントロールの高さを変更する」と「コンボボックスに新しい文字列を挿入する」とはどのように関連していますか? COMBOBOXウィンドウの高さは、システムのフォントサイズにのみ依存します。 –
高さが小さすぎると、挿入された新しい文字列は表示されません。 'COMBOBOX'リソースの高さパラメータには、ドロップダウン領域の高さが含まれます。 – Midas