No.2ベストアンサー
- 回答日時:
もし、コンボボックスのサイズ変更をMoveWindowでやっているなら、これで表示されるのは、リスト部分を含むサイズです。
たとえば、
m_combobox1.MoveWindow(20,20,200,300);
の300は、リスト部分を含みます。
エディット部分の高さを変更させる場合は、
m_combobox1.SetItemHeight( -1, 100);
というようにします。
普段、意識していないので、コンボボックスを貼り付けてみましたが、マウスでは、エディット部分の高さは変えられないようです。
ダイアログエディタ(リソースビューのコントロールを貼り付けるフォーム)で、▼ボタンを押下させると、点線と四角で囲まれた部分が表示されます。
(コンボボックスの絵とは違う部分が囲まれるはず)
その下辺をウニ~とドラッグすると、リスト部分の高さが変わります。
MDI・SDI・ダイアログベースいずれでも同じです。
回答の中でコンボボックスのサイズ変更の際に、リスト部分を含むサイズを含むということでヒントになりました。
コンボボックスの領域を、GetWindowRect()等で取得すると、リスト部分のサイズが含まれないですが、
m_combobox1.GetDroppedControlRect(&Rect)
とすれば、リスト部分も含めて取得できるので、これを基にサイズ変更することで、うまく動作することができました。
どうもありがとうございました。
No.1
- 回答日時:
こんにちは。
以下確認させて頂きます。>>MFCでアプリを作成
MDI・SDI・ダイアログベースのうちどれでしょうか?
>>アプリ画面のサイズを変更すると
サイズ変更は「マウス操作」によってでしょうか、「API側」からでしょうか?
VCのバージョンは幾つでしょうか?
私はVC++60なのでその範囲内なら回答できるかもしれません。
この回答への補足
説明は不十分ですみません。補足いたします。
●MFCアプリは、ダイアログベースです。
●アプリ画面のサイズ変更は、マウス操作でドラッグし、これに連動して、以下のコードの実装により、コンボボックスを含む子ウィンドウのサイズを変えるようにしています。
---------------------------------------------------------------
CSize m_szDefault;// 元のアプリ画面サイズ
BOOL CMailDemoDlg::OnInitDialog()
{
CRect rect;
CDialog::OnInitDialog();
// 元のアプリ画面サイズの取得
GetWindowRect(&rect);
m_szDefault = rect.Size();
}
void CAppDlg::OnSize(UINT nType,int cx,int cy)
{
CRect rect;
// アプリ画面の現在サイズの取得
GetWindowRect(&rect);
CSize sz = rect.Size();
// コンボボックスの画面の取得
CWnd *wnd = GetDlgItem(IDC_COMBOBOX);
wnd->GetWindowRect(&rect);
// コンボボックスの画面サイズの再設定
rect.left *= ((double)sz.cy / (double)m_szDefault.cy);
rect.top *= ((double)sz.cy / (double)m_szDefault.cy);
rect.right *= ((double)sz.cy / (double)m_szDefault.cy);
rect.bottom *= ((double)sz.cy / (double)m_szDefault.cy);
wnd->SetWindowPos(NULL,rect.left,rect.top, rect.Width(),rect.Height(),SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOCOPYBITS);
}
---------------------------------------------------------------
●Visual Studio 2005 を使用しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- アプリ スマホ画面のホーム位置にカメラアプリを表示させるには 1 2022/11/07 06:26
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- HTML・CSS VB.net コンボボックス 2 2022/06/30 20:37
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- iPhone(アイフォーン) iphoneにおいて過去に使用した画面(アプリ?)を表示する方法を教えて下さい。 4 2022/09/02 22:20
- Windows 10 Windows11タスクバーやエクスプローラー、スタートメニュー 動画全画面時にカーソルが見えない 1 2022/04/08 00:03
- モニター・ディスプレイ リモートデスクトップ接続の画面表示について 1 2023/05/04 14:48
- ノートパソコン PCが異常に遅い 12 2023/04/05 14:01
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
コンボボックスにリストが表示されません・・・
Excel(エクセル)
-
コンボボックスの高さを変更したい。
C言語・C++・C#
-
エディットボックスの入力制限について
C言語・C++・C#
-
-
4
コンボボックス表示文字列を取得する場合
C言語・C++・C#
-
5
MFCでのコンボボックスについて
C言語・C++・C#
-
6
画面を強制的に再描画させる方法
C言語・C++・C#
-
7
VBAコンボボックスの内容が反映されない
その他(プログラミング・Web制作)
-
8
ダイアログ内コントロールの位置取得について
C言語・C++・C#
-
9
MFCでコンボボックスを選択不可状態にしたい
C言語・C++・C#
-
10
ボタンの表示の色、フォントを変更したい
C言語・C++・C#
-
11
MFC ダイアログ上のID取得について
C言語・C++・C#
-
12
ラジオボタンの値の取得について(C++)
C言語・C++・C#
-
13
【C++/CLI.NET】コンボボックスの値の設定・取得
C言語・C++・C#
-
14
VC++で文字列から任意の文字を削除するにはどうしたらいいですか?
C言語・C++・C#
-
15
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
16
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
17
CEdit の内容が変わった時にメッセージを表示させたい
C言語・C++・C#
-
18
ラジオボタンのグループ化
C言語・C++・C#
-
19
char*を初期化したいのですが
C言語・C++・C#
-
20
UpdateData( FALSE); による文字列データの表示更新(VC++6.0)
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォーム上のリストボックスに...
-
メッセージボックスのボタン文...
-
vbscriptで、ファイル選択ダイ...
-
ダイアログの上のテキストボッ...
-
ダイアログボックスで指定した...
-
ボタンの表示の色、フォントを...
-
ダイアログの表示位置の保存
-
Visual C++のダイアログ編集画...
-
マウスポインタの画像を変更したい
-
ツールチップの表示
-
MFCダイアログボックスを最前面...
-
メッセージボックスを大きくす...
-
【VC++2005(CLR)】ダイアログ右...
-
confirmダイアログの表示文字に...
-
アイコンをボタンに貼り付け
-
vc++で電卓
-
【VC++2005】ダイアログサイズ...
-
C# ボタンコントロール内で文字...
-
MFC ポップアップメニューのチ...
-
エディットボックスの処理で画...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスを大きくす...
-
ボタンの表示の色、フォントを...
-
コンボボックスのドロップダウ...
-
'int' から 'LPCSTR' に変換で...
-
ダイアログボックスで指定した...
-
フォーム上のリストボックスに...
-
confirmダイアログの表示文字に...
-
ダイアログの上のテキストボッ...
-
ボタンの配置を変更したい
-
VC(Ver6.0)でダイアログサイズ...
-
VC++ MFC エラーコード C2248 ...
-
メッセージボックスのボタン文...
-
リソースファイルとは・・・
-
MFCダイアログボックスを最前面...
-
ダイアログの表示位置の保存
-
ホームページビルダー21で作成...
-
vbscriptで、ファイル選択ダイ...
-
エクセル VBA 「Sub Auto_Open(...
-
C# ボタンコントロール内で文字...
-
アイコンをボタンに貼り付け
おすすめ情報