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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
コンボボックスにリストが表示されません・・・
Excel(エクセル)
-
コンボボックスの高さを変更したい。
C言語・C++・C#
-
エディットボックスの入力制限について
C言語・C++・C#
-
-
4
画面を強制的に再描画させる方法
C言語・C++・C#
-
5
MFCでのコンボボックスについて
C言語・C++・C#
-
6
コンボボックス表示文字列を取得する場合
C言語・C++・C#
-
7
MFC ダイアログ上のID取得について
C言語・C++・C#
-
8
ラジオボタンのグループ化
C言語・C++・C#
-
9
VBAコンボボックスの内容が反映されない
その他(プログラミング・Web制作)
-
10
MFCでコンボボックスを選択不可状態にしたい
C言語・C++・C#
-
11
VC++で文字列から任意の文字を削除するにはどうしたらいいですか?
C言語・C++・C#
-
12
ダイアログ表示時にチェックボックスにチェックされている状態にするには?
C言語・C++・C#
-
13
ダイアログ内コントロールの位置取得について
C言語・C++・C#
-
14
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
15
ボタンの表示の色、フォントを変更したい
C言語・C++・C#
-
16
メッセージハンドラ
C言語・C++・C#
-
17
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
18
ラジオボタンの値の取得について(C++)
C言語・C++・C#
-
19
【C++/CLI.NET】コンボボックスの値の設定・取得
C言語・C++・C#
-
20
UpdateData( FALSE); による文字列データの表示更新(VC++6.0)
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# ボタンコントロール内で文字...
-
SetWindowLong()でタイトルバー...
-
ダイアログを自分の好きな位置...
-
VisualStudioでC関数の呼び出し
-
c++でドル円変換のプラグラム...
-
PCで「使用可能な場合はグラフ...
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
勝手にウィンドウが開いて止ま...
-
「アイテムは収集されました」...
-
UWSCで特定のChromeのタブをア...
-
フォントの大きさ
-
NVIDIAのシェーダーキャッシュ
-
pythonでふたつのアニメーショ...
-
ゲームでは結局どっちが良いの?
-
Macbook Word フォント色変更で...
-
エクセルで回転する座標の出し方
-
CScrollViewの使用方法について
-
前回質問の続き
-
VB.NETでPictureBoxへの描画に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスを大きくす...
-
ボタンの表示の色、フォントを...
-
コンボボックスのドロップダウ...
-
フォーム上のリストボックスに...
-
ダイアログボックスで指定した...
-
C# ボタンコントロール内で文字...
-
ダイアログの上のテキストボッ...
-
confirmダイアログの表示文字に...
-
'int' から 'LPCSTR' に変換で...
-
MFCダイアログボックスを最前面...
-
メッセージボックスのボタン文...
-
vbscriptで、ファイル選択ダイ...
-
ボタンの配置を変更したい
-
ダイアログにプレビュー表示
-
リソースファイルとは・・・
-
エクセル VBA 「Sub Auto_Open(...
-
ダイアログの表示位置の保存
-
VC(Ver6.0)でダイアログサイズ...
-
ダイアログの一部を半透明化す...
-
MFC ポップアップメニューのチ...
おすすめ情報