AxtiveXについて質問させてください。
開発言語はVC++2008です。
http://social.msdn.microsoft.com/Forums/ja-JP/vc …
を参考にしてダイアログベースのocxを作成し、VB6のFormにコントロールモジュールを貼り付けたところうまく表示はできました。
ただし、コントロールモジュールの大きさを変更した時にダイアログやダイアログ上のコントロールモジュールも大きさも自動で変更させようと思い下記のようにコーディングしました。
void ***Ctrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
if (!pdc)
return;
DoSuperclassPaint(pdc, rcBounds);
m_HogeDlg.MoveWindow(rcBounds, TRUE);
if (!IsOptimizedDraw())
{
// コンテナは最適化された描画をサポートしていません。
// TODO: *pdc デバイス コンテキスト内で GDI オブジェクトを選択した場合は
//この位置で以前に選択されたオブジェクトを復元してください。
}
}
なにかVBのForm上でコントロールモジュールの大きさを変えたら、連動コントロールの大きさを変える方法がありましたら
教えてください。
GetWindowRect()、GetClientWindowRect()等もやってみましたがうまくいきませんでした。
上記のやり方がなにかトンチンカンならゴメンナサイ。
No.1ベストアンサー
- 回答日時:
リサイズ イベントが発生する(WM_SIZE メッセージが投げられる)ので、WM_SIZE のメッセージ ハンドラ void OnSize(UINT nType, int cx, int cy) の中で、パラメータ cx, cy に応じてダイアログなどをリサイズしてみてください。
メッセージ ハンドラは VC++ 2008 の場合、プロパティ ウィンドウを使って追加します。
なお、CWnd のメンバー関数、SetWindowPos(NULL, 0, 0, cx, cy, SWP_NOMOVE | SWP_NOZORDER) を使えば、位置とZオーダーを変えずにサイズだけ変更できます。
この回答への補足
お返事遅れて申し訳ありません。
sygh様の回答のOnSizeの件ですが私もそれはやってみたのですが、
OnSize内にブレークポイントを設定したところ、1度だけOnSizeに来ましたが、
その後はサイズを変更してもOnSizeに来ませんでした。
ちなみに、私はVB6のプログラミング画面(用語として正しい?)でコントロールの大きさを変えたら
表示されている文字の大きさを変更するようなことをしたいと思っています。
こういうことはできないのでしょうか?それとも私の考え方がおかしいのでしょうか?
デバッグは以下のように行っています。
VC++2008でプログラムミングして作成したocxをVB(Puroject.exe)に置き、
VC++からデバッグ(Puroject.exe)を呼び出しています。
No.2
- 回答日時:
回答No.1の補足です。
ダイアログ派生クラスのOnSize()ではなく、OLEコントロール派生クラスのOnSize()内にブレークポイントを置いてみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# ActiveXコントロールを.NETにインポートできない??? 2 2023/05/02 02:50
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームでPDFを表示させた...
-
コントロールの書式設定で、“コ...
-
エクセルのコントロールツール...
-
連続で印刷すると画像が更新さ...
-
DateTimePickerでに年月までし...
-
CEdit の内容が変わった時にメ...
-
スピンボタンを右クリックして...
-
TabControlとToolBarの背景色変更
-
リストボックスの同期
-
WM_SIZEを発生させる方法
-
VBAでリストボックス内で↑↓の操...
-
C++6.0でのresource.hについて
-
コモンダイアログコントロール...
-
VB6.0のデザイン時 コントロー...
-
リストコントロール(MFC or API...
-
EXCELVBA リストボックスで選択...
-
警告表示を非表示にしたい
-
msiインストーラでフォルダのセ...
-
VB6でタブコントロールが見つか...
-
VisualBasic 2010でVB6で使って...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コントロールの書式設定で、“コ...
-
エクセルのコントロールツール...
-
C++6.0でのresource.hについて
-
DateTimePickerでに年月までし...
-
エクセル - リストボックスのマ...
-
コモンダイアログコントロール...
-
フォームでPDFを表示させた...
-
連続で印刷すると画像が更新さ...
-
ActiveXコントロールを.NETにイ...
-
スピンボタンを右クリックして...
-
警告表示を非表示にしたい
-
TabControlとToolBarの背景色変更
-
ワードのドロップダウンリスト
-
CEdit の内容が変わった時にメ...
-
文字色を変えたい(ACCESS VBA)
-
VScrollBarの点滅を何とかしたい。
-
EXCELVBA リストボックスで選択...
-
regsvr32でActiveX登録を行ったocx
-
VBAでリストボックス内で↑↓の操...
-
VB6.0のデザイン時 コントロー...
おすすめ情報