CWnd
クラス
Microsoft Foundation Class ライブラリにあるすべてのウィンドウ クラスの基本機能が用意されています。
構文
class CWnd : public CCmdTarget
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CWnd::CWnd |
CWnd オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CWnd::accDoDefaultAction |
オブジェクトの既定のアクションを実行するために、フレームワークによって呼び出されます。 |
CWnd::accHitTest |
画面上の指定された位置にある子要素または子オブジェクトを取得するために、フレームワークによって呼び出されます。 |
CWnd::accLocation |
指定されたオブジェクトの現在の画面位置を取得するために、フレームワークによって呼び出されます。 |
CWnd::accNavigate |
コンテナー内の他のユーザー インターフェイス要素を走査するため、可能な場合はそのオブジェクトを取得するために、フレームワークによって呼び出されます。 |
CWnd::accSelect |
選択を変更するため、または指定されたオブジェクトのキーボード フォーカスを移動するために、フレームワークによって呼び出されます。 |
CWnd::AnimateWindow |
関連付けられたウィンドウ オブジェクトをアニメーション化します。 |
CWnd::ArrangeIconicWindows |
すべての最小化 (アイコン化) された子ウィンドウを整列します。 |
CWnd::Attach |
Windows ハンドルを CWnd オブジェクトに関連付けます。 |
CWnd::BeginModalState |
フレーム ウィンドウをモーダルにします。 |
CWnd::BeginPaint |
描画用の CWnd を準備します。 |
CWnd::BindDefaultProperty |
タイプ ライブラリに示されているように、呼び出し元オブジェクトの既定の単純バインド プロパティを、データ ソース コントロールに関連付けられているカーソルにバインドします。 |
CWnd::BindProperty |
データ バインディング コントロールのカーソル バインド プロパティをデータ ソース コントロールにバインドし、そのリレーションシップを MFC バインド マネージャーに登録します。 |
CWnd::BringWindowToTop |
CWnd を重なったウィンドウのスタックの最上位に移動します。 |
CWnd::CalcWindowRect |
クライアントの四角形からウィンドウ四角形を計算するために呼び出されます。 |
CWnd::CancelToolTips |
ツール ヒント コントロールを無効にします。 |
CWnd::CenterWindow |
ウィンドウをその親ウィンドウの中央に揃えます。 |
CWnd::ChangeClipboardChain |
クリップボード ビューアーのチェインから CWnd を削除します。 |
CWnd::CheckDlgButton |
チェック マークをボタン コントロールの横に配置したり、ボタン コントロールから削除したりします。 |
CWnd::CheckRadioButton |
指定されたオプション ボタンにチェック マークを付け、指定されたボタンのグループにある他のすべてのオプション ボタンからチェック マークを削除します。 |
CWnd::ChildWindowFromPoint |
子ウィンドウがある場合、指定された点を含む子ウィンドウを判断します。 |
CWnd::ClientToScreen |
ディスプレイ上の指定された点または四角形のクライアント座標を画面座標に変換します。 |
CWnd::CloseWindow |
ウィンドウを最小化します。 |
CWnd::ContinueModal |
ウィンドウのモーダル ステータスを継続します。 |
CWnd::Create |
CWnd オブジェクトに関連付けられる子ウィンドウを作成し、初期化します。 |
CWnd::CreateAccessibleProxy |
指定されたオブジェクトの Active Accessibility プロキシを作成します。 |
CWnd::CreateCaret |
システム キャレットの新しい形を作成し、そのキャレットの所有権を取得します。 |
CWnd::CreateControl |
MFC プログラムでは CWnd オブジェクトによって表される ActiveX コントロールを作成します。 |
CWnd::CreateEx |
Windows のオーバーラップ ウィンドウ、ポップアップ ウィンドウ、または子ウィンドウを作成し、CWnd オブジェクトに関連付けます。 |
CWnd::CreateGrayCaret |
灰色のブロックでシステム キャレットを作成し、そのキャレットの所有権を取得します。 |
CWnd::CreateSolidCaret |
純色のブロックでシステム キャレットを作成し、そのキャレットの所有権を取得します。 |
CWnd::DeleteTempMap |
FromHandle 関数で作成した一時的な CWnd オブジェクトをすべて削除するために、CWinApp のアイドル処理ハンドラーによって自動的に呼び出されます。 |
CWnd::DestroyWindow |
関連付けられている Windows のウィンドウを破棄します。 |
CWnd::Detach |
CWnd オブジェクトから Windows のハンドルを切り離し、そのハンドルを返します。 |
CWnd::DlgDirList |
リスト ボックスにファイル リストまたはディレクトリ リストを設定します。 |
CWnd::DlgDirListComboBox |
コンボ ボックスにファイル リストまたはディレクトリ リストを設定します。 |
CWnd::DlgDirSelect |
リスト ボックスから現在の選択を取得します。 |
CWnd::DlgDirSelectComboBox |
コンボ ボックスから現在の選択を取得します。 |
CWnd::DragAcceptFiles |
ドラッグされたファイルがウィンドウで読み込まれることを示します。 |
CWnd::DragDetect |
マウスをキャプチャし、ユーザーが左ボタンを離すか、Esc キーを押すか、または指定した点を中心にしたドラッグ四角形の外にマウスを移動するまで、移動を追跡します。 |
CWnd::DrawAnimatedRects |
アイコンを開く動作や、ウィンドウの最小化または最大化の動作を、ワイヤ フレームの四角形のアニメーションで表します。 |
CWnd::DrawCaption |
キャプションを描画します。 |
CWnd::DrawMenuBar |
メニュー バーを再描画します。 |
CWnd::EnableActiveAccessibility |
ユーザー定義の Active Accessibility 関数を有効にします。 |
CWnd::EnableDynamicLayout |
ユーザーがウィンドウのサイズを変更したときに、子ウィンドウの位置とサイズを動的に調整できるようにします。 |
CWnd::EnableD2DSupport |
ウィンドウの D2D のサポートを有効または無効にします。 このメソッドは、メイン ウィンドウが初期化される前に呼び出します。 |
CWnd::EnableScrollBar |
スクロール バーの矢印の一方または両方を有効または無効にします。 |
CWnd::EnableScrollBarCtrl |
兄弟スクロール バーのコントロールを有効または無効にします。 |
CWnd::EnableToolTips |
ツール ヒント コントロールを有効にします。 |
CWnd::EnableTrackingToolTips |
トラッキング モードのツール ヒント コントロールを有効にします。 |
CWnd::EnableWindow |
マウス入力およびキーボード入力を有効または無効にします。 |
CWnd::EndModalLoop |
ウィンドウのモーダル ステータスを終了します。 |
CWnd::EndModalState |
フレーム ウィンドウをモーダルからモードレスに変更します。 |
CWnd::EndPaint |
描画の終了を示します。 |
CWnd::ExecuteDlgInit |
ダイアログ リソースを開始します。 |
CWnd::FilterToolTipMessage |
ダイアログ ボックス内のコントロールに関連付けられているタイトルまたはテキストを取得します。 |
CWnd::FindWindow |
ウィンドウのハンドルを返します。ウィンドウのハンドルはそのウィンドウ名とウィンドウ クラスによって識別されます。 |
CWnd::FindWindowEx |
ウィンドウのハンドルを返します。ウィンドウのハンドルはそのウィンドウ名とウィンドウ クラスによって識別されます。 |
CWnd::FlashWindow |
ウィンドウを 1 回フラッシュします。 |
CWnd::FlashWindowEx |
ウィンドウをフラッシュし、追加の機能を実行します。 |
CWnd::FromHandle |
ウィンドウのハンドルが指定されている場合、CWnd オブジェクトへのポインターを返します。 オブジェクトが CWnd ハンドルにアタッチされていない場合は、一時 CWnd オブジェクトが作成されてアタッチされます。 |
CWnd::FromHandlePermanent |
ウィンドウのハンドルが指定されている場合、CWnd オブジェクトへのポインターを返します。 |
CWnd::get_accChild |
指定された子の IDispatch インターフェイスのアドレスを取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accChildCount |
このオブジェクトに属する子の数を取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accDefaultAction |
オブジェクトの既定のアクションを記述する文字列を取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accDescription |
指定されたオブジェクトの外観を記述する文字列を取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accFocus |
キーボード フォーカスを保持するオブジェクトを取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accHelp |
オブジェクトの Help プロパティ文字列を取得するためにフレームワークによって呼び出されます。 |
CWnd::get_accHelpTopic |
指定されたオブジェクトに関連付けられている WinHelp ファイルの完全パスと、そのファイル内の適切なトピックの識別子を取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accKeyboardShortcut |
指定されたオブジェクトのショートカット キーまたはアクセス キーを取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accName |
指定されたオブジェクトの名前を取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accParent |
オブジェクトの親の IDispatch インターフェイスを取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accRole |
指定されたオブジェクトの役割を記述する情報を取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accSelection |
このオブジェクトの選択されている子を取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accState |
指定されたオブジェクトの現在の状態を取得するために、フレームワークによって呼び出されます。 |
CWnd::get_accValue |
指定されたオブジェクトの値を取得するために、フレームワークによって呼び出されます。 |
CWnd::GetActiveWindow |
アクティブなウィンドウを取得します。 |
CWnd::GetAncestor |
指定したウィンドウの祖先ウィンドウ オブジェクトを取得します。 |
CWnd::GetCapture |
マウス キャプチャを持つ CWnd を取得します。 |
CWnd::GetCaretPos |
キャレットの現在位置を示すクライアント座標を取得します。 |
CWnd::GetCheckedRadioButton |
ボタンのグループ内で現在チェックされているオプション ボタンの ID を返します。 |
CWnd::GetClientRect |
CWnd クライアント領域の寸法を取得します。 |
CWnd::GetClipboardOwner |
クリップボードの現在のオーナーへのポインターを取得します。 |
CWnd::GetClipboardViewer |
クリップボード ビューアーのチェインの最初のウィンドウへのポインターを取得します。 |
CWnd::GetControlUnknown |
不明な ActiveX コントロールへのポインターを取得します。 |
CWnd::GetDC |
クライアント領域のディスプレイ コンテキストを取得します。 |
CWnd::GetDCEx |
クライアント領域のディスプレイ コンテキストを取得し、描画中のクリッピングを有効にします。 |
CWnd::GetDCRenderTarget |
CWnd ウィンドウのデバイス コンテキスト (DC) レンダー ターゲットを取得します。 |
CWnd::GetDescendantWindow |
すべての子孫ウィンドウを検索し、指定された ID を持つウィンドウを返します。 |
CWnd::GetDesktopWindow |
Windows のデスクトップ ウィンドウを取得します。 |
CWnd::GetDlgCtrlID |
CWnd が子ウィンドウの場合、この関数を呼び出すと、その ID 値が返されます。 |
CWnd::GetDlgItem |
指定されたダイアログ ボックスから指定された ID を持つコントロールを取得します。 |
CWnd::GetDlgItemInt |
指定されたダイアログ ボックスにあるコントロールのテキストを整数値に変換します。 |
CWnd::GetDlgItemText |
コントロールに関連付けられているキャプションまたはテキストを取得します。 |
CWnd::GetDSCCursor |
データ ソース コントロールの DataSource、UserName、Password、および SQL プロパティで定義されている、基になるカーソルへのポインターを取得します。 |
CWnd::GetDynamicLayout |
動的レイアウト マネージャー オブジェクトへのポインターを取得します。 |
CWnd::GetExStyle |
ウィンドウの拡張スタイルを返します。 |
CWnd::GetFocus |
現在入力フォーカスを持っている CWnd へのポインターを取得します。 |
CWnd::GetFont |
現在のフォントを取得します。 |
CWnd::GetForegroundWindow |
手前のウィンドウ (ユーザーが現在作業しているトップレベル ウィンドウ) へのポインターを返します。 |
CWnd::GetIcon |
アイコンへのハンドルを取得します。 |
CWnd::GetLastActivePopup |
CWnd が所有するポップアップ ウィンドウのうち、直前にアクティブだったウィンドウを調べます。 |
CWnd::GetLayeredWindowAttributes |
レイヤード ウィンドウの不透明度および透明度のカラー キーを取得します。 |
CWnd::GetMenu |
指定されたメニューへのポインターを取得します。 |
CWnd::GetNextDlgGroupItem |
コントロールのグループ内で、指定されたコントロールの直前または次に位置するコントロールを検索します。 |
CWnd::GetNextDlgTabItem |
指定したコントロールの後 (または前) の WS_TABSTOP スタイルを持つ最初のコントロールを取得します。 |
CWnd::GetNextWindow |
ウィンドウ マネージャーのリストから次 (または前) のウィンドウを返します。 |
CWnd::GetOleControlSite |
指定された ActiveX コントロールのカスタム サイトを取得します。 |
CWnd::GetOpenClipboardWindow |
現在クリップボードが開いているウィンドウへのポインターを取得します。 |
CWnd::GetOwner |
CWnd のオーナーへのポインターを取得します。 |
CWnd::GetParent |
CWnd の親ウィンドウがある場合、そのウィンドウを取得します。 |
CWnd::GetParentFrame |
CWnd オブジェクトの親フレーム ウィンドウを取得します。 |
CWnd::GetParentOwner |
子ウィンドウの親ウィンドウへのポインターを返します。 |
CWnd::GetProperty |
ActiveX コントロール プロパティを取得します。 |
CWnd::GetRenderTarget |
このウィンドウに関連付けられているレンダー ターゲットを取得します。 |
CWnd::GetSafeHwnd |
ポインターが m_hWnd NULL の場合 this は、または NULL を返します。 |
CWnd::GetSafeOwner |
指定されたウィンドウのセーフ オーナーを取得します。 |
CWnd::GetScrollBarCtrl |
兄弟スクロール バーのコントロールを返します。 |
CWnd::GetScrollBarInfo |
指定されたスクロール バーの情報を取得します。 |
CWnd::GetScrollInfo |
SCROLLINFO 構造体がスクロール バーについて保持している情報を取得します。 |
CWnd::GetScrollLimit |
スクロール バーの限界値を取得します。 |
CWnd::GetScrollPos |
スクロール ボックスの現在位置を取得します。 |
CWnd::GetScrollRange |
指定されたスクロール バーの現在の最小位置と最大位置をコピーします。 |
CWnd::GetStyle |
現在のウィンドウ スタイルを返します。 |
CWnd::GetSystemMenu |
アプリケーションがコピーおよび変更のためにコントロール メニューにアクセスできるようにします。 |
CWnd::GetTitleBarInfo |
指定されたタイトル バーの情報を取得します。 |
CWnd::GetTopLevelFrame |
ウィンドウのトップレベルのフレーム ウィンドウを取得します。 |
CWnd::GetTopLevelOwner |
トップ レベルのウィンドウを取得します。 |
CWnd::GetTopLevelParent |
ウィンドウのトップレベルの親ウィンドウを取得します。 |
CWnd::GetTopWindow |
CWnd に属する第 1 レベルの子ウィンドウを返します。 |
CWnd::GetUpdateRect |
CWnd 更新領域を完全に囲む最小の四角形の座標を取得します。 |
CWnd::GetUpdateRgn |
CWnd 更新領域を取得します。 |
CWnd::GetWindow |
対象となるウィンドウとの間に指定された関係が成り立つウィンドウを返します。 |
CWnd::GetWindowContextHelpId |
ヘルプ コンテキスト識別子を取得します。 |
CWnd::GetWindowDC |
キャプション バー、メニュー、スクロール バーを含むウィンドウ全体のディスプレイ コンテキストを取得します。 |
CWnd::GetWindowedChildCount |
関連付けられている子ウィンドウの数を返します。 |
CWnd::GetWindowInfo |
ウィンドウに関する情報を返します。 |
CWnd::GetWindowlessChildCount |
関連付けられているウィンドウなしの子ウィンドウの数を返します。 |
CWnd::GetWindowPlacement |
ウィンドウの表示状態、通常の位置 (復元された位置)、最小化された位置、および最大表示された位置を取得します。 |
CWnd::GetWindowRect |
CWnd の画面座標を取得します。 |
CWnd::GetWindowRgn |
ウィンドウのウィンドウ領域のコピーを取得します。 |
CWnd::GetWindowText |
ウィンドウのテキストまたはキャプション タイトル (ある場合) を返します。 |
CWnd::GetWindowTextLength |
ウィンドウのテキストまたはキャプション タイトルの長さを返します。 |
CWnd::HideCaret |
ディスプレイ画面からキャレットを削除して非表示にします。 |
CWnd::HiliteMenuItem |
トップ レベル (メニュー バー) のメニュー項目の強調表示を設定または解除します。 |
CWnd::HtmlHelp |
HTML ヘルプ アプリケーションを起動するために呼び出されます。 |
CWnd::Invalidate |
クライアント領域全体を無効にします。 |
CWnd::InvalidateRect |
指定された四角形を現在の更新領域に追加して、その四角形内のクライアント領域を無効にします。 |
CWnd::InvalidateRgn |
指定された領域を現在の更新領域に追加して、その領域内のクライアント領域を無効にします。 |
CWnd::InvokeHelper |
ActiveX コントロール メソッドまたはプロパティを呼び出します。 |
CWnd::IsChild |
CWnd が指定されたウィンドウの子ウィンドウか、または指定されたウィンドウの別の直系の子孫ウィンドウであるかを示します。 |
CWnd::IsD2DSupportEnabled |
D2D サポートが有効かどうかを判断します。 |
CWnd::IsDialogMessage |
指定されたメッセージがモードレス ダイアログ ボックス用かどうかを判断します。モードレス ダイアログ ボックス用のメッセージである場合は、そのメッセージを処理します。 |
CWnd::IsDlgButtonChecked |
ボタン コントロールがチェックされているかどうかを判断します。 |
CWnd::IsDynamicLayoutEnabled |
このウィンドウで動的レイアウトが有効かどうかを判断します。 動的レイアウトが有効な場合は、ユーザーが親ウィンドウのサイズを変更したときに、子ウィンドウの位置とサイズを変更できます。 |
CWnd::IsIconic |
CWnd が最小化 (アイコン化) されているかどうかを判断します。 |
CWnd::IsTouchWindow |
CWnd でタッチ操作がサポートされているかどうかを示します。 |
CWnd::IsWindowEnabled |
ウィンドウでマウス入力およびキーボード入力が有効かどうかを判断します。 |
CWnd::IsWindowVisible |
ウィンドウが表示可能かどうかを判断します。 |
CWnd::IsZoomed |
CWnd が最大表示されているかどうかを判断します。 |
CWnd::KillTimer |
システム タイマーを中止します。 |
CWnd::LockWindowUpdate |
指定されたウィンドウでの描画を無効化、または再有効化します。 |
CWnd::MapWindowPoints |
複数の点を CWnd の座標空間から他のウィンドウの座標空間へ変換 (マップ) します。 |
CWnd::MessageBox |
アプリケーションで用意されたメッセージとキャプションを含むウィンドウを作成し、表示します。 |
CWnd::ModifyStyle |
現在のウィンドウ スタイルを変更します。 |
CWnd::ModifyStyleEx |
ウィンドウの拡張スタイルを変更します。 |
CWnd::MoveWindow |
CWnd の位置と寸法を変更します。 |
CWnd::NotifyWinEvent |
定義済みイベントが発生したことをシステムに通知します。 |
CWnd::OnAmbientProperty |
アンビエント プロパティ値を実装します。 |
CWnd::OnDrawIconicThumbnailOrLivePreview |
Windows 7 のタブのサムネイルに表示する、またはアプリケーションのピーク用にクライアントで表示するビットマップを取得する必要があるときに、フレームワークによって呼び出されます。 |
CWnd::OnHelp |
アプリケーション内で F1 ヘルプを (現在のコンテキストを使って) 処理します。 |
CWnd::OnHelpFinder |
コマンドと ID_DEFAULT_HELP コマンドをID_HELP_FINDER 処理します。 |
CWnd::OnHelpIndex |
コマンドを ID_HELP_INDEX 処理し、既定のヘルプ トピックを提供します。 |
CWnd::OnHelpUsing |
ID_HELP_USING コマンドを処理します。 |
CWnd::OnToolHitTest |
点が指定されたツールの外接する四角形内にあるかどうかを判断し、そのツールに関する情報を取得します。 |
CWnd::OpenClipboard |
クリップボードを開きます。 他のアプリケーションは、Windows CloseClipboard 関数が呼び出されるまでクリップボードを変更できません。 |
CWnd::PaintWindowlessControls |
コントロール コンテナーのウィンドウなしのコントロールを描画します。 |
CWnd::PostMessage |
メッセージをアプリケーション キューに配置し、ウィンドウがメッセージを処理するのを待たずに制御を返します。 |
CWnd::PreCreateWindow |
CWnd オブジェクトに関連付けられている Windows のウィンドウが作成される前に呼び出されます。 |
CWnd::PreSubclassWindow |
が呼び出される前 SubclassWindow に、他の必要なサブクラス化を実行できるようにします。 |
CWnd::PreTranslateMessage |
ウィンドウ メッセージが Windows 関数の TranslateMessage および DispatchMessage にディスパッチされる前に、メッセージにフィルターをかけるために CWinApp によって使用されます。 |
CWnd::Print |
指定されたデバイス コンテキストで現在のウィンドウを描画します。 |
CWnd::PrintClient |
指定されたデバイス コンテキスト (通常はプリンター デバイス コンテキスト) で、さまざまなウィンドウを描画します。 |
CWnd::PrintWindow |
表示されているウィンドウを指定されたデバイス コンテキスト (通常はプリンター DC) にコピーします。 |
CWnd::RedrawWindow |
クライアント領域内の指定された四角形または領域を更新します。 |
CWnd::RegisterTouchWindow |
Windows タッチのサポートを登録または登録解除します。 |
CWnd::ReleaseDC |
他のアプリケーションが使用できるように、クライアント デバイス コンテキストおよびウィンドウ デバイス コンテキストを解放します。 |
CWnd::RepositionBars |
クライアント領域のコントロール バーの位置を変更します。 |
CWnd::RunModalLoop |
モーダル ステータスであるウィンドウのメッセージを取得、変換、またはディスパッチします。 |
CWnd::ScreenToClient |
ディスプレイ上の指定された点または四角形の画面座標をクライアント座標に変換します。 |
CWnd::ScrollWindow |
クライアント領域の内容をスクロールします。 |
CWnd::ScrollWindowEx |
クライアント領域の内容をスクロールします。 ScrollWindow と同様に、追加機能があります。 |
CWnd::SendChildNotifyLastMsg |
子ウィンドウがタスクを処理できるように、親ウィンドウから子ウィンドウへ通知メッセージを送信します。 |
CWnd::SendDlgItemMessage |
指定されたコントロールにメッセージを送信します。 |
CWnd::SendMessage |
CWnd オブジェクトにメッセージを送信し、メッセージが処理されるまで待機します。 |
CWnd::SendMessageToDescendants |
対象となるウィンドウのすべての子孫ウィンドウにメッセージを送信します。 |
CWnd::SendNotifyMessage |
指定されたメッセージをウィンドウに送信し、呼び出し元のスレッドがウィンドウを作成したかどうかに応じて、できるだけ早く制御を返します。 |
CWnd::SetActiveWindow |
ウィンドウをアクティブにします。 |
CWnd::SetCapture |
以降のすべてのマウス入力を CWnd に送信します。 |
CWnd::SetCaretPos |
指定された位置にキャレットを移動します。 |
CWnd::SetClipboardViewer |
クリップボードの内容が変更されるたびに通知を受けるウィンドウのチェインに CWnd を追加します。 |
CWnd::SetDlgCtrlID |
ウィンドウのウィンドウ ID またはコントロール ID を設定します (ダイアログ ボックス内のコントロールだけでなく、子ウィンドウの場合もあります)。 |
CWnd::SetDlgItemInt |
コントロールのテキストを、整数値を表現する文字列に設定します。 |
CWnd::SetDlgItemText |
指定されたダイアログ ボックスにあるコントロールのキャプションまたはテキストを設定します。 |
CWnd::SetFocus |
入力フォーカスを要求します。 |
CWnd::SetFont |
現在のフォントを設定します。 |
CWnd::SetForegroundWindow |
ウィンドウを作成したスレッドをフォアグラウンドに置き、そのウィンドウをアクティブにします。 |
CWnd::SetIcon |
特定のアイコンへのハンドルを設定します。 |
CWnd::SetLayeredWindowAttributes |
レイヤード ウィンドウの不透明度および透明度のカラー キーを設定します。 |
CWnd::SetMenu |
メニューを指定されたメニューに設定します。 |
CWnd::SetOwner |
CWnd のオーナーを変更します。 |
CWnd::SetParent |
親ウィンドウを変更します。 |
CWnd::SetProperty |
ActiveX コントロール プロパティを設定します。 |
CWnd::SetRedraw |
CWnd の変更内容を再描画したり、または再描画を禁止したりできます。 |
CWnd::SetScrollInfo |
スクロール バーの情報を設定します。 |
CWnd::SetScrollPos |
スクロール ボックスの現在位置を設定します。また、指定されている場合は、新しい位置で表示されるようにスクロール バーを再描画します。 |
CWnd::SetScrollRange |
指定されたスクロール バーの最小位置と最大位置の値を設定します。 |
CWnd::SetTimer |
トリガーされたときにメッセージを送信するシステム タイマーを WM_TIMER インストールします。 |
CWnd::SetWindowContextHelpId |
ヘルプ コンテキスト識別子を設定します。 |
CWnd::SetWindowPlacement |
ウィンドウの表示状態、通常の位置 (復元された位置)、最小化された位置、および最大表示された位置を設定します。 |
CWnd::SetWindowPos |
子ウィンドウ、ポップアップ ウィンドウ、およびトップレベル ウィンドウのサイズ、位置、および順序付けを変更します。 |
CWnd::SetWindowRgn |
ウィンドウ領域を設定します。 |
CWnd::SetWindowText |
ウィンドウ テキストまたはキャプション タイトル (ある場合) を指定されたテキストに設定します。 |
CWnd::ShowCaret |
ディスプレイ上のキャレット現在位置にキャレットを表示します。 キャレットは、表示されると自動的に点滅します。 |
CWnd::ShowOwnedPopups |
ウィンドウが所有するすべてのポップアップ ウィンドウを表示または非表示にします。 |
CWnd::ShowScrollBar |
スクロール バーを表示または非表示にします。 |
CWnd::ShowWindow |
ウィンドウを表示または非表示にします。 |
CWnd::SubclassDlgItem |
Windows コントロールを CWnd オブジェクトに関連付け、CWnd のメッセージ マップを通じてそのオブジェクトにメッセージを送信します。 |
CWnd::SubclassWindow |
ウィンドウを CWnd オブジェクトに関連付け、その CWnd のメッセージ マップを通じてメッセージがルーティングされるようにします。 |
CWnd::UnlockWindowUpdate |
CWnd::LockWindowUpdate でロックされていたウィンドウのロックを解除します。 |
CWnd::UnsubclassWindow |
オブジェクトからウィンドウを CWnd デタッチします |
CWnd::UpdateData |
ダイアログ ボックスのデータを初期化または取得します。 |
CWnd::UpdateDialogControls |
ダイアログの各ボタンの状態および他のコントロールの状態を更新します。 |
CWnd::UpdateLayeredWindow |
レイヤード ウィンドウの位置、サイズ、形状、内容、および透明度を更新します。 |
CWnd::UpdateWindow |
クライアント領域を更新します。 |
CWnd::ValidateRect |
指定された四角形を現在の更新領域から削除して、その四角形内のクライアント領域を有効にします。 |
CWnd::ValidateRgn |
現在の更新領域から指定された領域を削除して、その領域内のクライアント領域を有効にします。 |
CWnd::WindowFromPoint |
指定された点を含むウィンドウを識別します。 |
CWnd::WinHelp |
WinHelp アプリケーションを起動します。 |
プロテクト メソッド
名前 | 説明 |
---|---|
CWnd::Default |
既定のウィンドウ プロシージャを呼び出します。既定のウィンドウ プロシージャは、アプリケーションが処理しないウィンドウ メッセージに対する既定の処理を提供します。 |
CWnd::DefWindowProc |
既定のウィンドウ プロシージャを呼び出します。既定のウィンドウ プロシージャは、アプリケーションが処理しないウィンドウ メッセージに対する既定の処理を提供します。 |
CWnd::DoDataExchange |
ダイアログ データ エクスチェンジとダイアログ データ検証用です。 UpdateData によって呼び出されます。 |
CWnd::GetCurrentMessage |
ウィンドウが現在処理しているメッセージへのポインターを返します。 メッセージ ハンドラー メンバー関数の On Message 場合にのみ呼び出す必要があります。 |
CWnd::InitDynamicLayout |
ウィンドウの動的レイアウトを初期化するために、フレームワークによって呼び出されます。 |
CWnd::LoadDynamicLayoutResource |
リソース ファイルから動的レイアウト情報を読み込みます。 |
CWnd::OnActivate |
CWnd がアクティブまたは非アクティブになるときに呼び出されます。 |
CWnd::OnActivateApp |
アプリケーションがアクティブまたは非アクティブになるときに呼び出されます。 |
CWnd::OnAppCommand |
ユーザーがアプリケーションのコマンド イベントを生成するときに呼び出されます。 |
CWnd::OnAskCbFormatName |
クリップボード オーナーがクリップボードの内容を表示するときに、クリップボード ビューアーによって呼び出されます。 |
CWnd::OnCancelMode |
CWnd でマウスのキャプチャなどの内部モードを取り消すことができるようにするために呼び出されます。 |
CWnd::OnCaptureChanged |
マウス キャプチャを失うウィンドウにメッセージを送信します。 |
CWnd::OnChangeCbChain |
指定されたウィンドウがチェインから削除されようとしていることを通知します。 |
CWnd::OnChangeUIState |
ユーザー インターフェイス (UI) 状態を変更する必要があるときに呼び出されます。 |
CWnd::OnChar |
キーストロークが非システム文字に変換されるときに呼び出されます。 |
CWnd::OnCharToItem |
メッセージに応答WM_CHAR して スタイルをLBS_WANTKEYBOARDINPUT 持つ子リスト ボックスによって呼び出されます。 |
CWnd::OnChildActivate |
CWnd のサイズや位置が変更されたり、CWnd がアクティブになったりした場合に、マルチ ドキュメント インターフェイス (MDI) 子ウィンドウに対して呼び出されます。 |
CWnd::OnChildNotify |
親ウィンドウによって呼び出されます。親ウィンドウにメッセージを送るコントロールが、コントロール通知に対応できるようにします。 |
CWnd::OnClipboardUpdate |
クリップボードの内容が変更されたときに呼び出されます。 |
CWnd::OnClose |
CWnd を終了するシグナルとして呼び出されます。 |
CWnd::OnColorizationColorChanged |
非クライアント領域のレンダリングのポリシーが変更されたときに呼び出されます。 |
CWnd::OnCommand |
ユーザーがコマンドを選択すると呼び出されます。 |
CWnd::OnCompacting |
Windows がシステム メモリの低下を検出すると呼び出されます。 |
CWnd::OnCompareItem |
子の並べ替えられたオーナー描画コンボ ボックスやリスト ボックス内の新しい項目の相対位置を判断するために、呼び出されます。 |
CWnd::OnCompositionChanged |
Desktop Window Manager (DWM) コンポジションを有効にするか無効にするときに、すべてのトップ レベル ウィンドウに対して呼び出されます。 |
CWnd::OnContextMenu |
ウィンドウ内でマウスの右ボタンをクリックすると呼び出されます。 |
CWnd::OnCopyData |
あるアプリケーションから他のアプリケーションにデータをコピーします。 |
CWnd::OnCreate |
ウィンドウの作成の一部として呼び出されます。 |
CWnd::OnCtlColor |
CWnd がコントロールの親である場合、コントロールの描画時に呼び出されます。 |
CWnd::OnDeadChar |
キーストロークが非システムのデッド文字 (アクセント記号付き文字など) に変換されるときに呼び出されます。 |
CWnd::OnDeleteItem |
オーナー描画の子リスト ボックスやコンボ ボックスが破棄されるとき、または項目がコントロールから削除されるときに呼び出されます。 |
CWnd::OnDestroy |
CWnd が破棄されているときに呼び出されます。 |
CWnd::OnDestroyClipboard |
Windows EmptyClipboard 関数の呼び出しによってクリップボードが空になったときに呼び出されます。 |
CWnd::OnDeviceChange |
デバイスやコンピューターのハードウェア構成が変更されたときに、アプリケーションまたはデバイス ドライバーに通知します。 |
CWnd::OnDevModeChange |
ユーザーがデバイス モードの設定を変更したときに、すべてのトップ レベルのウィンドウに対して呼び出されます。 |
CWnd::OnDrawClipboard |
クリップボードの内容が変更されるときに呼び出されます。 |
CWnd::OnDrawItem |
オーナー描画の子ボタン コントロール、コンボ ボックス コントロール、リスト ボックス コントロール、またはメニューの外観を描画する必要があるときに呼び出されます。 |
CWnd::OnDropFiles |
ドロップされたファイルを受け取るように登録したウィンドウ上で、ユーザーがマウスの左ボタンを離したときに呼び出されます。 |
CWnd::OnEnable |
CWnd が有効または無効になるときに呼び出されます。 |
CWnd::OnEndSession |
セッションが終了するときに呼び出されます。 |
CWnd::OnEnterIdle |
モーダル ダイアログ ボックスまたはメニューがアイドル状態になることをアプリケーションのメイン ウィンドウ プロシージャに通知するために呼び出されます。 |
CWnd::OnEnterMenuLoop |
メニュー モーダル ループに入るときに呼び出されます。 |
CWnd::OnEnterSizeMove |
影響を受けるウィンドウが移動またはサイズ変更のモーダル ループに入った後に呼び出されます。 |
CWnd::OnEraseBkgnd |
ウィンドウの背景を消去する必要があるときに呼び出されます。 |
CWnd::OnExitMenuLoop |
メニュー モーダル ループが終了したときに呼び出されます。 |
CWnd::OnExitSizeMove |
影響を受けるウィンドウが移動またはサイズ変更のモーダル ループを終了した後に呼び出されます。 |
CWnd::OnFontChange |
フォント リソースのプールの変更時に呼び出されます。 |
CWnd::OnGetDlgCode |
方向キーおよび Tab キーによる入力そのものをコントロールが処理できるように、そのコントロールに対して呼び出されます。 |
CWnd::OnGetMinMaxInfo |
Windows が最大表示されたときの位置や寸法、または最小や最大のトラッキング サイズを知る必要があるときに、必ず呼び出されます。 |
CWnd::OnHelpInfo |
ユーザーが F1 キーを押したときに、フレームワークによって呼び出されます。 |
CWnd::OnHotKey |
ユーザーがシステム全体でのショートカット キーを押したときに呼び出されます。 |
CWnd::OnHScroll |
CWnd の水平スクロール バーをクリックすると、呼び出されます。 |
CWnd::OnHScrollClipboard |
クリップボード オーナーがクリップボード内のイメージをスクロールし、適切な部分を無効にし、スクロール バーの値を更新する必要がある場合に呼び出されます。 |
CWnd::OnIconEraseBkgnd |
CWnd が最小化 (アイコン化) され、アイコンを描画する前にアイコンの背景を設定する必要があるときに呼び出されます。 |
CWnd::OnInitMenu |
メニューがアクティブになるときに呼び出されます。 |
CWnd::OnInitMenuPopup |
ポップアップ メニューがアクティブになるときに呼び出されます。 |
CWnd::OnInputDeviceChange |
I/O デバイスがシステムで追加または削除されたときに呼び出されます。 |
CWnd::OnInputLangChange |
アプリケーションの入力言語が変更されると呼び出されます。 |
CWnd::OnInputLangChangeRequest |
ユーザーが新しい入力言語を選択するときに呼び出されます。 |
CWnd::OnKeyDown |
非システム キーが押されると呼び出されます。 |
CWnd::OnKeyUp |
非システム キーが離されると呼び出されます。 |
CWnd::OnKillFocus |
CWnd が入力フォーカスを失う直前に呼び出されます。 |
CWnd::OnLButtonDblClk |
マウスの左ボタンをダブルクリックすると呼び出されます。 |
CWnd::OnLButtonDown |
マウスの左ボタンを押すと呼び出されます。 |
CWnd::OnLButtonUp |
マウスの左ボタンを離すと呼び出されます。 |
CWnd::OnMButtonDblClk |
マウスの中央ボタンをダブルクリックすると呼び出されます。 |
CWnd::OnMButtonDown |
マウスの中央ボタンを押すと呼び出されます。 |
CWnd::OnMButtonUp |
マウスの中央ボタンを離すと呼び出されます。 |
CWnd::OnMDIActivate |
MDI 子ウィンドウがアクティブまたは非アクティブになるときに呼び出されます。 |
CWnd::OnMeasureItem |
オーナー描画の子コンボ ボックス、リスト ボックス、またはメニュー項目が作成されるときに呼び出されます。 CWnd は、コントロールの大きさを Windows に通知します。 |
CWnd::OnMenuChar |
ユーザーが押したメニューのニーモニック文字が、現在のメニューに組み込まれているニーモニックと一致しないときに呼び出されます。 |
CWnd::OnMenuDrag |
ユーザーがメニュー項目をドラッグするときに呼び出されます。 |
CWnd::OnMenuGetObject |
マウス カーソルがメニュー項目に入るか、項目の中央から項目の上部または下部に移動したときに呼び出されます。 |
CWnd::OnMenuRButtonUp |
カーソルがメニュー項目にあるときに、マウスの右ボタンを離すと呼び出されます。 |
CWnd::OnMenuSelect |
ユーザーがメニュー項目を選択するときに呼び出されます。 |
CWnd::OnMouseActivate |
カーソルが非アクティブ ウィンドウにあるときに、マウス ボタンを押すと呼び出されます。 |
CWnd::OnMouseHover |
への以前の呼び出しで指定された期間、ウィンドウのクライアント領域にカーソルを置いたときに呼び出 TrackMouseEvent されます。 |
CWnd::OnMouseHWheel |
マウスの水平スクロール ホイールが傾いたり回転したりしたときに呼び出されます。 |
CWnd::OnMouseLeave |
への以前の呼び出しで指定されたウィンドウのクライアント領域からカーソルが離れると呼び出 TrackMouseEvent されます。 |
CWnd::OnMouseMove |
マウスのカーソルの移動時に呼び出されます。 |
CWnd::OnMouseWheel |
マウス ホイールの回転時に呼び出されます。 Windows NT 4.0 メッセージ処理を使用します。 |
CWnd::OnMove |
CWnd の位置が変更されると、呼び出されます。 |
CWnd::OnMoving |
ユーザーが CWnd オブジェクトを移動中であることを示します。 |
CWnd::OnNcActivate |
アクティブまたは非アクティブ状態を示すために、非クライアント領域を変更する必要があるときに呼び出されます。 |
CWnd::OnNcCalcSize |
クライアント領域のサイズと位置を計算する必要があるときに呼び出されます。 |
CWnd::OnNcCreate |
非クライアント領域が作成される前に OnCreate 呼び出されます。 |
CWnd::OnNcDestroy |
非クライアント領域が破棄されるときに呼び出されます。 |
CWnd::OnNcHitTest |
CWnd がカーソルを含む場合、または SetCapture を使用してマウス入力をキャプチャした場合に、マウスを移動するごとに Windows によって呼び出されます。 |
CWnd::OnNcLButtonDblClk |
カーソルが CWnd の非クライアント領域内にあるときに、マウスの左ボタンをダブルクリックすると呼び出されます。 |
CWnd::OnNcLButtonDown |
カーソルが CWnd の非クライアント領域内にあるときに、マウスの左ボタンを押すと呼び出されます。 |
CWnd::OnNcLButtonUp |
カーソルが CWnd の非クライアント領域内にあるときに、マウスの左ボタンを離すと呼び出されます。 |
CWnd::OnNcMButtonDblClk |
カーソルが CWnd の非クライアント領域内にあるときに、マウスの中央ボタンをダブルクリックすると呼び出されます。 |
CWnd::OnNcMButtonDown |
カーソルが CWnd の非クライアント領域内にあるときに、マウスの中央ボタンを押すと呼び出されます。 |
CWnd::OnNcMButtonUp |
カーソルが CWnd の非クライアント領域内にあるときに、マウスの中央ボタンを離すと呼び出されます。 |
CWnd::OnNcMouseHover |
への以前の呼び出しで指定された期間、ウィンドウのクライアント以外の領域にカーソルを置いたときに呼び出 TrackMouseEvent されます。 |
CWnd::OnNcMouseLeave |
フレームワークは、 の前の呼び出しで指定されたウィンドウのクライアント以外の領域からカーソルが離れると、このメンバー関数を TrackMouseEvent 呼び出します。 |
CWnd::OnNcMouseMove |
CWnd の非クライアント領域内でカーソルが移動するときに呼び出されます。 |
CWnd::OnNcPaint |
非クライアント領域を描画する必要があるときに呼び出されます。 |
CWnd::OnNcRButtonDblClk |
カーソルが CWnd の非クライアント領域内にあるときに、マウスの右ボタンをダブルクリックすると呼び出されます。 |
CWnd::OnNcRButtonDown |
カーソルが CWnd の非クライアント領域内にあるときに、マウスの右ボタンを押すと呼び出されます。 |
CWnd::OnNcRButtonUp |
カーソルが CWnd の非クライアント領域内にあるときに、マウスの右ボタンを離すと呼び出されます。 |
CWnd::OnNcRenderingChanged |
非クライアント領域のレンダリングのポリシーが変更されたときに呼び出されます。 |
CWnd::OnNcXButtonDblClk |
ユーザーがダブルクリック XBUTTON1 したとき、または XBUTTON2 カーソルがウィンドウのクライアント以外の領域にあるときに呼び出されます。 |
CWnd::OnNcXButtonDown |
カーソルがウィンドウのクライアント以外の領域にあるときに、ユーザーがまたはXBUTTON2 マウスを押XBUTTON1 したときに呼び出されます。 |
CWnd::OnNcXButtonUp |
カーソルがウィンドウのクライアント以外の領域にあるときに、ユーザーがまたはマウスを離XBUTTON1 XBUTTON2 したときに呼び出されます。 |
CWnd::OnNextMenu |
右方向キーまたは左方向キーでメニュー バーとシステム メニューを切り替えたときに呼び出されます。 |
CWnd::OnNotify |
コントロールでイベントが発生したこと、またはコントロールが情報を必要としていることを親ウィンドウに通知するために、フレームワークによって呼び出されます。 |
CWnd::OnNotifyFormat |
現在のウィンドウが通知メッセージで ANSI または Unicode 構造体を WM_NOTIFY 受け入れるかどうかを判断するために呼び出されます。 |
CWnd::OnPaint |
ウィンドウの一部を再描画するために呼び出されます。 |
CWnd::OnPaintClipboard |
クリップボード ビューアーのクライアント領域の再描画が必要なときに呼び出されます。 |
CWnd::OnPaletteChanged |
カラー パレットを使用するウィンドウによる論理パレットの実体化とクライアント領域の更新を許可するために呼び出されます。 |
CWnd::OnPaletteIsChanging |
あるアプリケーションで論理パレットが実体化されるときに、他のアプリケーションに通知します。 |
CWnd::OnParentNotify |
子ウィンドウを作成または破棄するか、カーソルが子ウィンドウの上にあるときにマウス ボタンをクリックすると呼び出されます。 |
CWnd::OnPowerBroadcast |
電源管理イベントが発生したときに呼び出されます。 |
CWnd::OnQueryDragIcon |
最小化 (アイコン化) された CWnd をユーザーがドラッグするときに呼び出されます。 |
CWnd::OnQueryEndSession |
ユーザーが Windows セッションを終了するときに呼び出されます。 |
CWnd::OnQueryNewPalette |
もうすぐ入力フォーカスを受け取ることを、CWnd に通知します。 |
CWnd::OnQueryOpen |
CWnd がアイコンであり、ユーザーがそのアイコンを開こうとしたときに呼び出されます。 |
CWnd::OnQueryUIState |
ウィンドウのユーザー インターフェイス (UI) 状態を取得するために呼び出されます。 |
CWnd::OnRawInput |
現在のウィンドウが生の入力を取得するときに呼び出されます。 |
CWnd::OnRButtonDblClk |
マウスの右ボタンをダブルクリックすると呼び出されます。 |
CWnd::OnRButtonDown |
マウスの右ボタンを押すと呼び出されます。 |
CWnd::OnRButtonUp |
マウスの右ボタンを離すと呼び出されます。 |
CWnd::OnRenderAllFormats |
オーナー アプリケーションが破棄され、そのフォーマットすべてのレンダリングが必要なときに呼び出されます。 |
CWnd::OnRenderFormat |
遅延レンダリングされた固有フォーマットのレンダリングが必要なときに、クリップボード オーナーに対して呼び出されます。 |
CWnd::OnSessionChange |
セッション状態の変更をアプリケーションに通知するために呼び出されます。 |
CWnd::OnSetCursor |
マウス入力がキャプチャされておらず、マウスがウィンドウ内でカーソルの移動を引き起こす場合に呼び出されます。 |
CWnd::OnSetFocus |
CWnd が入力フォーカスを取得すると呼び出されます。 |
CWnd::OnSettingChange |
Win32 SystemParametersInfo 関数がシステム全体の設定を変更するときに呼び出されます。 |
CWnd::OnShowWindow |
CWnd が非表示になるか表示されるときに呼び出されます。 |
CWnd::OnSize |
CWnd のサイズが変更された後に呼び出されます。 |
CWnd::OnSizeClipboard |
クリップボード ビューアー ウィンドウのクライアント領域のサイズが変更されたときに呼び出されます。 |
CWnd::OnSizing |
四角形のサイズを変更中であることを示します。 |
CWnd::OnSpoolerStatus |
プリント マネージャーのキューでジョブが追加または削除されるたびに、プリント マネージャーから呼び出されます。 |
CWnd::OnStyleChanged |
Windows 関数が SetWindowLong 1 つ以上のウィンドウのスタイルを変更したことを示します。 |
CWnd::OnStyleChanging |
Windows 関数が 1 つ以上のウィンドウのスタイルを変更しようとしていることを SetWindowLong 示します。 |
CWnd::OnSysChar |
キーストロークがシステム文字に変換されるときに呼び出されます。 |
CWnd::OnSysColorChange |
システム カラーの設定が変更されたときに、すべてのトップ レベル ウィンドウで呼び出されます。 |
CWnd::OnSysCommand |
ユーザーがコントロール メニューからコマンドを選択するとき、または最大化ボタンまたは最小化ボタンを選択するときに呼び出されます。 |
CWnd::OnSysDeadChar |
キーストロークがシステムのデッド文字 (アクセント記号付き文字など) に変換されるときに呼び出されます。 |
CWnd::OnSysKeyDown |
ユーザーが Alt キーを押したまま他のキーを押すときに呼び出されます。 |
CWnd::OnSysKeyUp |
Alt キーと一緒に押していたキーを離すときに呼び出されます。 |
CWnd::OnTCard |
ユーザーが編集可能なボタンをクリックしたときに呼び出されます。 |
CWnd::OnTimeChange |
システム時間が変更された後、すべてのトップ レベルのウィンドウに対して呼び出されます。 |
CWnd::OnTimer |
で指定された各間隔の後に SetTimer 呼び出されます。 |
CWnd::OnTouchInput |
Windows タッチからの 1 つの入力を処理します。 |
CWnd::OnTouchInputs |
Windows タッチからの複数の入力を処理します。 |
CWnd::OnUniChar |
キーが押されるときに呼び出されます。 つまり、現在のウィンドウにはキーボード フォーカスがあり、 WM_KEYDOWN メッセージは 関数によって TranslateMessage 変換されます。 |
CWnd::OnUnInitMenuPopup |
ドロップダウン メニューやサブメニューが破棄されたときに呼び出されます。 |
CWnd::OnUpdateUIState |
指定したウィンドウとすべての子ウィンドウのユーザー インターフェイス (UI) 状態を変更するときに呼び出されます。 |
CWnd::OnUserChanged |
ユーザーがログオンまたはログオフした後に呼び出されます。 |
CWnd::OnVKeyToItem |
メッセージへの応答WM_KEYDOWN として によって所有されているリスト ボックスによってCWnd 呼び出されます。 |
CWnd::OnVScroll |
ウィンドウの垂直スクロール バーをクリックすると呼び出されます。 |
CWnd::OnVScrollClipboard |
オーナーがクリップボード内のイメージをスクロールし、適切な部分を無効にし、さらに、スクロール バーの値を更新する必要がある場合に呼び出されます。 |
CWnd::OnWindowPosChanged |
または別のウィンドウ管理機能の呼び出しの結果としてサイズ、位置、または Z オーダーが変更されたときに呼び出 SetWindowPos されます。 |
CWnd::OnWindowPosChanging |
または別のウィンドウ管理機能の呼び出しの結果として、サイズ、位置、または Z オーダーが変更されようとしているときに呼び出 SetWindowPos されます。 |
CWnd::OnWinIniChange |
Windows 初期化ファイル ( ) が変更された後、 WIN.INI すべての最上位ウィンドウに対して呼び出されます。 |
CWnd::OnWndMsg |
ウィンドウのメッセージが処理されたかどうかを示します。 |
CWnd::OnXButtonDblClk |
ユーザーがダブルクリック XBUTTON1 したとき、または XBUTTON2 カーソルがウィンドウのクライアント領域にあるときに呼び出されます。 |
CWnd::OnXButtonDown |
ユーザーが押 XBUTTON1 したとき、または XBUTTON2 カーソルがウィンドウのクライアント領域にあるときに呼び出されます。 |
CWnd::OnXButtonUp |
ユーザーが解放 XBUTTON1 するとき、または XBUTTON2 カーソルがウィンドウのクライアント領域にあるときに呼び出されます。 |
CWnd::PostNcDestroy |
この仮想関数は、ウィンドウが破棄された後、既定の OnNcDestroy 関数によって呼び出されます。 |
CWnd::ReflectChildNotify |
メッセージをソースに反映するヘルパー関数。 |
CWnd::ReflectLastMsg |
最後のメッセージを子ウィンドウに反映します。 |
CWnd::ResizeDynamicLayout |
ウィンドウで動的レイアウトが有効な場合、子ウィンドウのレイアウトを調整するためにウィンドウのサイズが変更されると、フレームワークによって呼び出されます。 |
CWnd::WindowProc |
CWnd にウィンドウ プロシージャを提供します。 既定では、メッセージ マップを通じてメッセージをディスパッチします。 |
パブリック演算子
名前 | 説明 |
---|---|
CWnd::operator HWND |
ウィンドウへのハンドルを取得するために呼び出します。 |
CWnd::operator != |
ウィンドウが ハンドルが のウィンドウ m_hWnd と同じでないかどうかを判断します。 |
CWnd::operator == |
ウィンドウが ハンドルが のウィンドウ m_hWnd と同じかどうかを判断します。 |
パブリック データ メンバー
名前 | 説明 |
---|---|
CWnd::m_hWnd |
この CWnd にアタッチされている HWND を示します。 |
注釈
CWnd
オブジェクトは、Windows のウィンドウとは異なりますが、両者は密接にリンクされています。 CWnd
オブジェクトは、CWnd
コンストラクターとデストラクターによって作成され、破棄されます。 一方、Windows ウィンドウは、メンバー関数によって作成され、仮想デストラクターによって Create
破棄される Windows 内部の CWnd
データ構造です。 関数は DestroyWindow
、オブジェクトを破棄せずに Windows ウィンドウを破棄します。
クラスとメッセージ マップ メカニズムは CWnd
、関数を WndProc
非表示にします。 受信 Windows 通知メッセージは、メッセージ マップを介して適切な OnMessageCWnd
メンバー関数に自動的にルーティングされます。 OnMessage メンバー関数をオーバーライドして、派生クラスのメンバーの特定のメッセージを処理します。
CWnd
クラスでは、アプリケーションの Windows 子ウィンドウも作成できます。 アプリケーション固有のデータを格納するには、CWnd
からクラスを派生させ、その派生クラスにメンバー変数を追加します。 ウィンドウにメッセージが送られたときに行われる処理を指定するには、派生クラスにメッセージ処理メンバー関数とメッセージ マップを実装します。
子ウィンドウは 2 つのステップで作成します。 まず、コンストラクター CWnd
を呼び出してオブジェクトを CWnd
構築し、そのメンバー関数を Create
呼び出して子ウィンドウを作成し、オブジェクトに CWnd
アタッチします。
ユーザーが子ウィンドウを終了したら、ウィンドウを削除してそのデータ構造体を破棄するために、CWnd
オブジェクトを破棄するか、DestroyWindow
メンバー関数を呼び出します。
Microsoft Foundation Class ライブラリでは、固有のウィンドウ タイプを提供するために、CWnd
からさらにクラスが派生されています。 、、、、 CDialog
などCMDIChildWnd
CFrameWnd
CMDIFrameWnd
CView
、これらのクラスの多くは、さらに派生するように設計されています。 から CWnd
派生したコントロール クラス ( など CButton
) は、直接使用することも、クラスをさらに派生するために使用することもできます。
の使用CWnd
の詳細については、「および ウィンドウ オブジェクト」を参照してくださいFrame Windows
。
継承階層
CWnd
必要条件
ヘッダー: afxwin.h
CWnd::accDoDefaultAction
オブジェクトの既定のアクションを実行するために、フレームワークによって呼び出されます。
virtual HRESULT accDoDefaultAction(VARIANT varChild);
パラメーター
varChild
呼び出される既定のアクションがオブジェクトのアクションか、オブジェクトの子要素の 1 つであるかを指定します。 このパラメーターには、CHILDID_SELF (オブジェクトの既定のアクションを実行する場合) または子 ID (オブジェクトの子要素の 1 つの既定のアクションを実行する場合) のいずれかを指定できます。
戻り値
成功したS_OKを返します。失敗した場合は COM エラー コードを返します。 Windows SDK の「IAccessible::accDoDefaultAction の戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
派生クラスでこの関数を CWnd
オーバーライドして、オブジェクトの既定のアクションを実行します。 詳細については、Windows SDK の 「IAccessible::accDoDefaultAction 」を参照してください。
CWnd::accHitTest
画面上の指定された位置にある子要素または子オブジェクトを取得するために、フレームワークによって呼び出されます。
virtual HRESULT accHitTest(
long xLeft,
long yTop,
VARIANT* pvarChild);
パラメーター
xLeft
ヒット テストするポイントの X 座標 (画面単位)。
yTop
ヒット テストするポイントの Y 座標 (画面単位)。
pvarChild
および で xLeft
指定されたポイントにあるオブジェクトを識別する情報を yTop
受け取ります。 Windows SDK の IAccessible::accHitTest
を参照してくださいpvarID
。
戻り値
成功した場合は S_OK
、失敗した場合は COM エラー コードを返します。 Windows SDK の IAccessible::accHitTest
戻り値に関するページを参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ウィンドウなしのユーザー インターフェイス要素 (MFC が CWnd
処理するウィンドウレス ActiveX コントロールを除く) がある場合は、派生クラスでこの関数をオーバーライドします。
詳細については、Windows SDK の IAccessible::accHitTest
に関する記事を参照してください。
CWnd::accLocation
指定されたオブジェクトの現在の画面位置を取得するために、フレームワークによって呼び出されます。
virtual HRESULT accLocation(
long* pxLeft,
long* pyTop,
long* pcxWidth,
long* pcyHeight,
VARIANT varChild);
パラメーター
pxLeft
オブジェクトの左上隅の x 座標を受け取ります (画面単位)。
pyTop
オブジェクトの左上隅の y 座標を受け取ります (画面単位)。
pcxWidth
オブジェクトの幅を (画面単位で) 受け取ります。
pcyHeight
オブジェクトの高さを (画面単位で) 受け取ります。
varChild
取得する場所がオブジェクトの場所か、オブジェクトの子要素のいずれかであるかを指定します。 このパラメーターには、(オブジェクトに関する情報を取得するために) または子 ID (オブジェクトの子要素に関する情報を取得する) のいずれかを CHILDID_SELF
指定できます。
戻り値
成功したS_OKを返します。失敗した場合は COM エラー コードを返します。 Windows SDK の IAccessible::accLocation
戻り値に関するページを参照してください。
注釈
ウィンドウなしのユーザー インターフェイス要素 (MFC が CWnd
処理するウィンドウレス ActiveX コントロールを除く) がある場合は、派生クラスでこの関数をオーバーライドします。
詳細については、Windows SDK の IAccessible::accLocation
に関する記事を参照してください。
CWnd::accNavigate
コンテナー内の他のユーザー インターフェイス要素を走査するため、可能な場合はそのオブジェクトを取得するために、フレームワークによって呼び出されます。
virtual HRESULT accNavigate(
long navDir,
VARIANT varStart,
VARIANT* pvarEndUpAt);
パラメーター
navDir
移動する方向を指定します。 Windows SDK の IAccessible::accNavigate
を参照してくださいnavDir
。
varStart
開始オブジェクトを指定します。 Windows SDK の IAccessible::accNavigate
を参照してくださいvarStart
。
pvarEndUpAt
宛先ユーザー インターフェイス オブジェクトに関する情報を受け取ります。 Windows SDK の IAccessible::accNavigate
を参照してくださいpvarEnd
。
戻り値
成功した場合は S_OK
、失敗した場合は COM エラー コードを返します。 Windows SDK の IAccessible::accNavigate
戻り値に関するページを参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ウィンドウなしのユーザー インターフェイス要素 (MFC が CWnd
処理するウィンドウレス ActiveX コントロールを除く) がある場合は、派生クラスでこの関数をオーバーライドします。
詳細については、Windows SDK の IAccessible::accNavigate
に関する記事を参照してください。
CWnd::accSelect
選択を変更するため、または指定されたオブジェクトのキーボード フォーカスを移動するために、フレームワークによって呼び出されます。
virtual HRESULT accSelect(
long flagsSelect,
VARIANT varChild);
パラメーター
flagsSelect
現在の選択範囲またはフォーカスを変更する方法を指定します。 Windows SDK の IAccessible::accSelect
を参照してくださいflagsSelect
。
varChild
選択するオブジェクトを指定します。 このパラメーターには、(オブジェクト自体を選択する場合) または子 ID (オブジェクトの子のいずれかを選択する場合) のいずれかを CHILDID_SELF
指定できます。
戻り値
成功した場合は S_OK
、失敗した場合は COM エラー コードを返します。 Windows SDK の IAccessible::accSelect
戻り値に関するページを参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ウィンドウなしのユーザー インターフェイス要素 (MFC が CWnd
処理するウィンドウレス ActiveX コントロールを除く) がある場合は、派生クラスでこの関数をオーバーライドします。
詳細については、Windows SDK の IAccessible::accSelect
に関する記事を参照してください。
CWnd::AnimateWindow
ウィンドウを表示または非表示にするときに特殊効果を生成します。
BOOL AnimateWindow(
DWORD dwTime,
DWORD dwFlags);
パラメーター
dwTime
アニメーションの再生にかかる時間をミリ秒単位で指定します。 通常、アニメーションの再生には 200 ミリ秒かかります。
dwFlags
アニメーションの種類を指定します。 使用可能な値の完全な一覧については、「」を参照してください AnimateWindow
。
戻り値
関数が正常終了した場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 AnimateWindow
の機能をエミュレートします。
CWnd::ArrangeIconicWindows
すべての最小化 (アイコン化) された子ウィンドウを整列します。
UINT ArrangeIconicWindows();
戻り値
関数が成功した場合の 1 行のアイコンの高さ。それ以外の場合は 0。
注釈
このメンバー関数は、デスクトップ ウィンドウにアイコンを配置し、画面全体をカバーします。 メンバー関数は GetDesktopWindow
、デスクトップ ウィンドウ オブジェクトへのポインターを取得します。
MDI クライアント ウィンドウにアイコンの MDI 子ウィンドウを配置するには、 を呼び出します CMDIFrameWnd::MDIIconArrange
。
例
// arrange minimized MDI child windows
// called from menu item; CMdiChildFrame is derived from CMDIChildWnd
void CMdiChildFrame::OnActionArrangeIconicWindows()
{
UINT height = GetParent()->ArrangeIconicWindows();
TRACE(_T("height = %d\n"), height);
}
CWnd::Attach
Windows ウィンドウをオブジェクトに CWnd
アタッチします。
BOOL Attach(HWND hWndNew);
パラメーター
hWndNew
Windows ウィンドウへのハンドルを指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
例
この例では、 と Detach
を使用Attach
して MDI クライアント ウィンドウにマップする方法を示します。
// Declare a CWnd member of CMainFrame
public:
CWnd m_wndMDIClient;
// detach MDI client window in CMainFrame destructor
m_wndMDIClient.Detach();
// In CMainFrame::OnCreate, attach MDI client window
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
// attach MDI client window
if (m_wndMDIClient.Attach(m_hWndMDIClient) == 0)
{
TRACE(_T("Failed to attach MDIClient.\n"));
return -1; // fail to create
}
CWnd::BeginModalState
フレーム ウィンドウをモーダルにします。
virtual void BeginModalState();
CWnd::BeginPaint
描画の準備を CWnd
行い、データ構造に PAINTSTRUCT
描画に関する情報を入力します。
CDC* BeginPaint(LPPAINTSTRUCT lpPaint);
パラメーター
lpPaint
描画情報を PAINTSTRUCT
受け取る構造体を指します。
戻り値
のデバイス コンテキストを識別します CWnd
。 ポインターは一時的な場合があり、 のスコープ EndPaint
を超えて格納しないでください。
注釈
ペイント構造には、更新領域を RECT
完全に囲む最小の四角形を持つデータ構造と、背景が消去されたかどうかを指定するフラグが含まれています。
更新領域は、または InvalidateRgn
メンバー関数によって設定され、クライアント領域に影響を与えるその他の操作のサイズ設定、移動、作成、スクロール、または実行後にシステムによってInvalidate
InvalidateRect
設定されます。 更新リージョンが消去のマークが付いている場合は、 BeginPaint
メッセージを送信します WM_ONERASEBKGND
。
メッセージへの応答を除き、 BeginPaint
メンバー関数を WM_PAINT
呼び出さないでください。 メンバー関数の BeginPaint
各呼び出しには、メンバー関数の一致する呼び出しが EndPaint
必要です。 キャレットが塗りつぶされる領域にある場合、 BeginPaint
メンバー関数は自動的にキャレットを非表示にして、キャレットが消去されないようにします。
例
// Use BeginPaint and EndPaint when responding to WM_PAINT message
// An alternative method is to use CPaintDC in place of
// BeginPaint and EndPaint
void CMdiView::OnPaint()
{
PAINTSTRUCT ps;
CDC *pDC = BeginPaint(&ps);
pDC->Rectangle(CRect(0, 0, 100, 100));
EndPaint(&ps);
// Do not call CView::OnPaint() for painting messages
}
CWnd::BindDefaultProperty
呼び出し元オブジェクトの既定の単純バインド プロパティ (編集コントロールなど) を、タイプ ライブラリでマークされているとおりに、データ ソース コントロールの 、UserName
、Password
、および SQL
プロパティによってDataSource
定義されている基になるカーソルにバインドします。
void BindDefaultProperty(
DISPID dwDispID,
VARTYPE vtProp,
LPCTSTR szFieldName,
CWnd* pDSCWnd);
パラメーター
dwDispID
DISPID
データ ソース コントロールにバインドされるデータ バインド コントロールの プロパティの を指定します。
vtProp
バインドするプロパティの型を指定します。 たとえば、VT_BSTR
VT_VARIANT
などです。
szFieldName
プロパティをバインドするデータ ソース コントロールによって提供されるカーソル内の列の名前を指定します。
pDSCWnd
プロパティのバインド先となるデータ ソース コントロールをホストするウィンドウを指します。 このポインターを取得するには、DCS のホスト ウィンドウのリソース ID を使用して を呼び出 GetDlgItem
します。
注釈
この関数を呼び出すオブジェクトは CWnd
、データ バインド コントロールである必要があります。
例
BindDefaultProperty
は、次のコンテキストで使用できます。
BOOL CMyDlg::OnInitDialog()
{
CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL1);
pMyBound->BindDefaultProperty(0x1, VT_BSTR, _T("ContactFirstName"), pDSC);
return TRUE;
}
CWnd::BindProperty
データ バインド コントロール (グリッド コントロールなど) のカーソル バインド プロパティをデータ ソース コントロールにバインドし、そのリレーションシップを MFC バインド マネージャーに登録します。
void BindProperty(
DISPID dwDispId,
CWnd* pWndDSC);
パラメーター
dwDispId
DISPID
データ ソース コントロールにバインドされるデータ バインド コントロールの プロパティの を指定します。
pWndDSC
プロパティのバインド先となるデータ ソース コントロールをホストするウィンドウを指します。 このポインターを取得するには、DCS のホスト ウィンドウのリソース ID を使用して を呼び出 GetDlgItem
します。
注釈
この関数を呼び出すオブジェクトは CWnd
、データ バインド コントロールである必要があります。
例
BindProperty
は、次のコンテキストで使用できます。
BOOL CMyDlg::OnInitDialog()
{
CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
CWnd *pMyBound = GetDlgItem(IDC_MYBOUNDCTRL2);
pMyBound->BindProperty(0x1, pDSC);
return TRUE;
}
CWnd::BringWindowToTop
CWnd
を重なったウィンドウのスタックの最上位に移動します。
void BringWindowToTop();
注釈
また、BringWindowToTop
により、ポップアップ ウィンドウ、トップレベル ウィンドウ、および MDI 子ウィンドウがアクティブになります。 BringWindowToTop
メンバー関数は、重なったウィンドウによって部分的または完全に隠されているウィンドウを表示する場合に使用します。
この関数は Win32 BringWindowToTop
関数を呼び出すだけです。 関数を SetWindowPos
呼び出して、Z オーダーでのウィンドウの位置を変更します。 BringWindowToTop
関数では、ウィンドウ スタイルが変更され、そのウィンドウがトップレベル ウィンドウになることはありません。 詳細については、「と HWND_TOPMOST
の違HWND_TOP
い」を参照してください。
例
// Moves MDI child windows to the top when a mouse passes
// over it. CMdiView is derived from CView.
void CMdiView::OnMouseMove(UINT nFlags, CPoint point)
{
UNREFERENCED_PARAMETER(nFlags);
UNREFERENCED_PARAMETER(point);
GetParentFrame()->BringWindowToTop();
}
CWnd::CalcWindowRect
指定したクライアント四角形を含むことができるウィンドウの四角形を計算します。
virtual void CalcWindowRect(
LPRECT lpClientRect,
UINT nAdjustType = adjustBorder);
パラメーター
lpClientRect
[入力、出力]四角形構造体へのポインター。 入力時に、この構造体にはクライアントの四角形が含まれます。 メソッドが完了すると、この構造体には、指定したクライアントの四角形を含むことができるウィンドウの四角形が含まれます。
nAdjustType
[入力]スタイルを使用せずにウィンドウ座標を計算する場合は をWS_EX_CLIENTEDGE
使用CWnd::adjustBorder
します。それ以外の場合は を使用しますCWnd::adjustOutside
。
注釈
計算ウィンドウの四角形のサイズには、メニュー バーのスペースは含まれません。
その他の使用制限については、「」を参照してください AdjustWindowRectEx
。
例
// Uses CalcWindowRect to determine size for new CFrameWnd
// based on the size of the current view. The end result is a
// top level frame window of the same size as CMdiView's frame.
void CMdiView::OnMyCreateFrame()
{
CFrameWnd *pFrameWnd = new CFrameWnd;
CRect myRect;
GetClientRect(myRect);
pFrameWnd->Create(NULL, _T("My Frame"));
pFrameWnd->CalcWindowRect(&myRect, CWnd::adjustBorder);
pFrameWnd->MoveWindow(0, 0, myRect.Width(), myRect.Height());
pFrameWnd->ShowWindow(SW_SHOW);
}
CWnd::CancelToolTips
ツール ヒントが現在表示されている場合は、このメンバー関数を呼び出して、ツール ヒントを画面から削除します。
static void PASCAL CancelToolTips(BOOL bKeys = FALSE);
パラメーター
bKeys
TRUE
キーが押されたときにツール ヒントを取り消し、ステータス バーのテキストを既定値に設定する場合は 。それ以外の場合 FALSE
は 。
注釈
注意
このメンバー関数を使用しても、コードによって管理されるツール ヒントには影響しません。 これは、 によって CWnd::EnableToolTips
管理されるツール ヒント コントロールにのみ影響します。
例
// In this example, tool tips were set up to
// pop up when the user moves the mouse
// over this edit control.
// If the mouse is moved to the upper left-hand
// corner, the tool tip would disappear because of
// calling CancelToolTips.
void CMyEdit::OnMouseMove(UINT nFlags, CPoint point)
{
CRect corner(0, 0, 10, 10);
if (corner.PtInRect(point))
CancelToolTips();
CEdit::OnMouseMove(nFlags, point);
}
CWnd::CenterWindow
ウィンドウをその親ウィンドウの中央に揃えます。
void CenterWindow(CWnd* pAlternateOwner = NULL);
パラメーター
pAlternateOwner
(親ウィンドウ以外の) 中央に配置される代替ウィンドウへのポインター。
注釈
通常、アプリケーションのメイン ウィンドウを基準にして、ダイアログ ボックスを中央から中央に呼び出 CDialog::OnInitDialog
します。 既定では、関数は親ウィンドウを基準にして子ウィンドウを中央に配置し、ポップアップ ウィンドウを所有者に対して相対的に配置します。 ポップアップ ウィンドウが所有されていない場合は、画面を基準にして中央揃えされます。 所有者または親ではない特定のウィンドウを基準にしてウィンドウを中央に配置するには、 パラメーターを pAlternateOwner
有効なウィンドウに設定できます。 画面に対して強制的に中央揃えするには、 で CWnd::GetDesktopWindow
返される値を として pAlternateOwner
渡します。
例
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CenterWindow();
return TRUE;
}
CWnd::ChangeClipboardChain
クリップボード ビューアーのチェーンから削除CWnd
し、チェーン内の先祖のCWnd
子孫によってhWndNext
指定されたウィンドウを作成します。
BOOL ChangeClipboardChain(HWND hWndNext);
パラメーター
hWndNext
クリップボード ビューアー チェーンの次 CWnd
のウィンドウを識別します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
CWnd::CheckDlgButton
ボタンを選択 (横にチェック マークを付ける) またはクリア (チェック マークの削除) を行うか、3 状態ボタンの状態を変更します。
void CheckDlgButton(
int nIDButton,
UINT nCheck);
パラメーター
nIDButton
変更するボタンを指定します。
nCheck
実行するアクションを指定します。 が 0 以外のCheckDlgButton
場合nCheck
、メンバー関数はボタンの横にチェック マークを付けます。0 の場合、チェック マークは削除されます。 3 つの状態のボタンの場合、 が 2 の場合 nCheck
、ボタンの状態は不確定になります。
注釈
関数は CheckDlgButton
、指定した BM_SETCHECK
ボタンにメッセージを送信します。
例
// Sets 3 check buttons in various ways. Note BST_INDETERMINATE
// requires BS_3STATE or BS_AUTO3STATE in the button's style.
void CMyDlg::OnMarkButtons()
{
CheckDlgButton(IDC_CHECK1, BST_UNCHECKED); // 0
CheckDlgButton(IDC_CHECK2, BST_CHECKED); // 1
CheckDlgButton(IDC_CHECK3, BST_INDETERMINATE); // 2
}
CWnd::CheckRadioButton
グループ内の特定のラジオ ボタンを選択 (チェック マークを追加) し、グループ内の他のすべてのラジオ ボタンをクリア (チェック マークの削除) します。
void CheckRadioButton(
int nIDFirstButton,
int nIDLastButton,
int nIDCheckButton);
パラメーター
nIDFirstButton
グループ内の最初のラジオ ボタンの整数識別子を指定します。
nIDLastButton
グループ内の最後のラジオ ボタンの整数識別子を指定します。
nIDCheckButton
チェックするラジオ ボタンの整数識別子を指定します。
注釈
関数は CheckRadioButton
、 BM_SETCHECK
指定したラジオ ボタンにメッセージを送信します。
例
// Of the 4 radio buttons, selects radio button 3.
void CMyDlg::OnMarkRadio()
{
CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO3);
}
CWnd::ChildWindowFromPoint
に属する子ウィンドウのうち、指定したポイントを含む子ウィンドウが存在する CWnd
場合はどれを指定します。
CWnd* ChildWindowFromPoint(POINT point) const;
CWnd* ChildWindowFromPoint(
POINT point,
UINT nFlags) const;
パラメーター
point
テストするポイントのクライアント座標を指定します。
nflags
スキップする子ウィンドウを指定します。 このパラメーターは、次の値と組み合わせて指定できます。
値 | 説明 |
---|---|
CWP_ALL |
子ウィンドウをスキップしない |
CWP_SKIPINVISIBLE |
非表示の子ウィンドウをスキップする |
CWP_SKIPDISABLED |
無効な子ウィンドウをスキップする |
CWP_SKIPTRANSPARENT |
透明な子ウィンドウをスキップする |
戻り値
ポイントを含む子ウィンドウを識別します。 指定されたポイントが NULL
クライアント領域の外部にある場合です。 ポイントがクライアント領域内にあり、子ウィンドウ内に含まれていない場合は、 CWnd
が返されます。
このメンバー関数は、指定したポイントを含む非表示または無効な子ウィンドウを返します。
複数のウィンドウに指定されたポイントが含まれている場合があります。 ただし、この関数は、ポイントを CWnd
含む最初に検出されたウィンドウの * のみを返します。
返される * は CWnd
一時的なものであり、後で使用するために格納しないでください。
例
void CMyDlg::OnFindCenterChild()
{
CRect rect;
GetClientRect(&rect);
CWnd* pWnd = ChildWindowFromPoint(
CPoint(rect.Width()/2, rect.Height()/2),
// Top left is always 0, 0.
CWP_SKIPINVISIBLE);
TRACE(_T("Center window is 0x%08x\n"), pWnd->m_hWnd);
}
CWnd::ClientToScreen
ディスプレイ上の指定された点または四角形のクライアント座標を画面座標に変換します。
void ClientToScreen(LPPOINT lpPoint) const; void ClientToScreen(LPRECT lpRect) const;
パラメーター
lpPoint
変換するPOINT
クライアント座標を含む構造体またはCPoint
オブジェクトを指します。
lpRect
変換するRECT
クライアント座標を含む構造体またはCRect
オブジェクトを指します。
注釈
メンバー関数はClientToScreen
、 または RECT
構造体のPOINT
クライアント座標、または CPoint
または がlpRect
lpPoint
指す オブジェクトまたは CRect
オブジェクトを使用して新しい画面座標を計算し、構造体内の座標を新しい座標に置き換えます。 新しい画面座標は、システムディスプレイの左上隅を基準にしています。
メンバー関数は ClientToScreen
、指定されたポイントまたは四角形がクライアント座標にあることを前提としています。
例
// resize dialog to client's size
void CMyDlg::OnSizeToClient()
{
CRect myRect;
GetClientRect(&myRect);
ClientToScreen(myRect);
MoveWindow(myRect.left, myRect.top,
myRect.Width(), myRect.Height());
}
CWnd::CloseWindow
ウィンドウを最小化します。
void CloseWindow();
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 CloseWindow
の機能をエミュレートします。
CWnd::ContinueModal
このメンバー関数は、 によって呼び出され RunModalLoop
、モーダル状態をいつ終了するかを決定します。
virtual BOOL ContinueModal();
戻り値
モーダル ループを継続する場合は 0 以外。が呼び出されたとき EndModalLoop
は 0。
注釈
既定では、 が呼び出されるまで EndModalLoop
0 以外を返します。
CWnd::Create
指定した子ウィンドウを作成し、オブジェクトに CWnd
アタッチします。
virtual BOOL Create(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
Const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CCreateContext* pContext = NULL);
パラメーター
lpszClassName
[入力]登録されているシステム ウィンドウ クラスの名前を含む null で終わる文字列へのポインター。または定義済みのシステム ウィンドウ クラスの名前。
lpszWindowName
[入力]ウィンドウ表示名を含む null で終わる文字列へのポインター。それ以外の場合 NULL
は、ウィンドウ表示名がありません。
dwStyle
[入力] ウィンドウ スタイルのビットごとの組み合わせ (OR)。 このオプションは WS_POPUP
有効なスタイルではありません。
rect
[入力]親ウィンドウの左上隅を基準としたウィンドウのサイズと位置。
pParentWnd
[入力]親ウィンドウへのポインター。
nID
[入力]ウィンドウの ID。
pContext
[入力]アプリケーションの CCreateContext
ドキュメント ビュー アーキテクチャをカスタマイズするために使用される構造体へのポインター。
戻り値
TRUE
メソッドが成功した場合は 。それ以外の場合 FALSE
は 。
解説
警告
CWnd::PreCreateWindow
メニューが で、スタイルに hMenu
が含まれているWS_CHILD
場合、this
そのCREATESTRUCT
パラメーターのメンバーがNULL
ポインターに割り当てられるようになりました。 適切な機能を実現するには、ダイアログ コントロールに ではない NULL
ID があることを確認します。
この変更により、マネージド/ネイティブ相互運用シナリオでのクラッシュが修正されます。 TRACE
の ステートメントはCWnd::Create
、問題の開発者に警告します。
関数を AfxRegisterWndClass
使用して、ウィンドウ クラスを登録します。 ユーザー定義ウィンドウ クラスは、登録されているモジュールで使用できます。
メソッドは CWnd::OnCreate
、メソッドが Create
戻る前と、ウィンドウが表示される前に呼び出されます。
例
// Dynamically create static control using CWnd::Create,
// instead of with CStatic::Create, which doesn't
// need the "STATIC" class name.
void CMyDlg::OnCreateStatic()
{
// m_pWndStatic is a CWnd* member of CMyDlg
m_pWndStatic = new CWnd;
m_pWndStatic->Create(_T("STATIC"), _T("Hi"), WS_CHILD | WS_VISIBLE,
CRect(0, 0, 20, 20), this, 1234);
}
CWnd::CreateAccessibleProxy
指定されたオブジェクトの Active Accessibility プロキシを作成します。
virtual HRESULT CreateAccessibleProxy(
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
パラメーター
wParam
Active Accessibility プロキシによってアクセスされるオブジェクトを識別します。 次のいずれかの値を指定できます
値 | 説明 |
---|---|
OBJID_CLIENT |
ウィンドウのクライアント領域を参照します。 |
lParam
追加のメッセージに依存する情報を提供します。
pResult
結果コードを LRESULT
格納する へのポインター。
注釈
指定されたオブジェクトの Active Accessibility プロキシを作成します。
CWnd::CreateCaret
システム キャレットの新しい図形を作成し、キャレットの所有権を要求します。
void CreateCaret(CBitmap* pBitmap);
パラメーター
pBitmap
キャレット図形を定義するビットマップを識別します。
注釈
ビットマップは、メンバー関数、Windows 関数、CreateDIBitmap
またはメンバー関数によってCBitmap::CreateBitmap
以前に作成されているCBitmap::LoadBitmap
必要があります。
CreateCaret
キャレットを所有するウィンドウに関係なく、前のキャレット図形 (存在する場合) は自動的に破棄されます。 作成されると、キャレットは最初は非表示になります。 キャレットを表示するには、メンバー関数を ShowCaret
呼び出す必要があります。
システム キャレットは共有リソースです。 CWnd
は、入力フォーカスがある場合、またはアクティブな場合にのみキャレットを作成する必要があります。 キャレットは、入力フォーカスを失うか非アクティブになる前に破棄する必要があります。
例
// Changes the caret of the edit control in this dialog box
void CMyDlg::OnChangeCaret()
{
m_pBitmapCaret = new CBitmap;
m_pBitmapCaret->LoadBitmap(IDB_HAPPY_BITMAP);
m_MyEdit.CreateCaret(m_pBitmapCaret);
m_MyEdit.ShowCaret();
}
CWnd::CreateControl
このメンバー関数を使用して、MFC プログラムでオブジェクトによって表される ActiveX コントロールを CWnd
作成します。
BOOL CreateControl(
LPCTSTR pszClass,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL);
BOOL CreateControl(
REFCLSID clsid,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL);
BOOL CreateControl(
REFCLSID clsid,
LPCTSTR pszWindowName,
DWORD dwStyle,
const POINT* ppt,
const SIZE* psize,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL);
パラメーター
pszClass
この文字列には、 クラスの OLE "short name" (ProgID
) が含まれている場合があります。 たとえば、"CIRC3.Circ3Ctrl.1"
のようにします。 名前は、コントロールによって登録されたのと同じ名前と一致する必要があります。 または、文字列には、中かっこに含まれる の CLSID
文字列形式を含む場合があります。 たとえば、"{9DBAFCCF-592F-101B-85CE-00608CEC297B}"
のようにします。 どちらの場合も、 CreateControl
は文字列を対応するクラス ID に変換します。
pszWindowName
コントロールに表示するテキストへのポインター。 コントロールの Caption プロパティまたは Text プロパティ (存在する場合) の値を設定します。 の場合 NULL
、コントロールの Caption プロパティまたは Text プロパティは変更されません。
dwStyle
Windows スタイル。 使用できるスタイルは、[解説] の下に一覧表示されます。
rect
コントロールのサイズと位置を指定します。 オブジェクトまたはRECT
構造体のいずれかをCRect
指定できます。
ppt
コントロールの左上隅をPOINT
含む構造体またはCPoint
オブジェクトを指します。
pSize
コントロールのサイズを SIZE
含む構造体または CSize
オブジェクトを指します。
*pParentWnd*
コントロールの親ウィンドウを指定します。 にすることはできません NULL
。
nID
コントロールの ID を指定します。
pPersist
コントロールの永続的な状態を含む へのポインター CFile
。 既定値は です NULL
。これは、永続的ストレージから状態を復元せずにコントロール自体を初期化することを示します。 そうでない NULL
場合は、ストリームまたはストレージのいずれかの形式で、コントロールの永続データを含む派生オブジェクトへのポインター CFile
である必要があります。 このデータは、クライアントの以前のアクティブ化で保存されている可能性があります。 には他の CFile
データを含めることができますが、 の呼び出し時に、その読み取り/書き込みポインターを永続データの最初のバイトに設定する CreateControl
必要があります。
bStorage
内のデータを または データpPersist
としてIStorage
IStream
解釈する必要があるかどうかを示します。 内 pPersist
のデータがストレージ bStorage
の場合は、 にする TRUE
必要があります。 のデータ pPersist
がストリームの場合は、 bStorage
にする FALSE
必要があります。 既定値は FALSE
です。
bstrLicKey
オプションのライセンス キー データ。 このデータは、ランタイム ライセンス キーを必要とするコントロールを作成する場合にのみ必要です。 コントロールがライセンスをサポートしている場合は、コントロールの作成を成功させるためにライセンス キーを指定する必要があります。 既定値は NULL
です。
clsid
コントロールの一意のクラス ID。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
CreateControl
は 関数の CWnd::Create
直接の類似体であり、 のウィンドウを CWnd
作成します。 CreateControl
は、通常のウィンドウではなく ActiveX コントロールを作成します。
では、Windows dwStyle
フラグのサブセットのみがサポートされます CreateControl
。
WS_VISIBLE
最初に表示されるウィンドウを作成します。 通常のウィンドウのように、コントロールをすぐに表示する場合は必須です。WS_DISABLED
最初に無効になっているウィンドウを作成します。 無効なウィンドウは、ユーザーからの入力を受信できません。 コントロールに Enabled プロパティがある場合に設定できます。WS_BORDER
細い線の境界線を持つウィンドウを作成します。 コントロールに プロパティがある場合にBorderStyle
設定できます。WS_GROUP
コントロールのグループの最初のコントロールを指定します。 ユーザーは、方向キーを使用して、グループ内の 1 つのコントロールから次のコントロールにキーボード フォーカスを変更できます。 最初のコントロールの後にスタイルでWS_GROUP
定義されたすべてのコントロールは、同じグループに属します。 スタイルを持つ次のコントロールはWS_GROUP
、グループを終了し、次のグループを開始します。WS_TABSTOP
ユーザーが Tab キーを押したときにキーボード フォーカスを受け取ることができるコントロールを指定します。 Tab キーを押すと、キーボード フォーカスがスタイルの次のコントロールにWS_TABSTOP
変更されます。
例
class CGenocx : public CWnd
{
protected:
DECLARE_DYNCREATE(CGenocx)
public:
CLSID const &GetClsid()
{
static CLSID const clsid = {0x20DD1B9E, 0x87C4, 0x11D1, {0x8B, 0xE3, 0x0, 0x0, 0xF8, 0x75, 0x4D, 0xA1}};
return clsid;
}
// This code is generated by the Control Wizard.
// It wraps the call to CreateControl in the call to Create.
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT &rect, CWnd *pParentWnd, UINT nID,
CCreateContext *pContext = NULL)
{
UNREFERENCED_PARAMETER(pContext);
UNREFERENCED_PARAMETER(lpszClassName);
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
}
// remainder of class declaration omitted...
CWnd::CreateEx
指定したウィンドウを作成し、オブジェクトに CWnd
アタッチします。
virtual BOOL CreateEx(
DWORD dwExStyle,
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU nIDorHMenu,
LPVOID lpParam = NULL);
virtual BOOL CreateEx(
DWORD dwExStyle,
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
LPVOID lpParam = NULL);
パラメーター
dwExStyle
拡張ウィンドウ スタイルのビットごとの組み合わせ (OR)。それ以外の場合NULL
は、既定の拡張ウィンドウ スタイルの場合は 。
lpszClassName
登録されているシステム ウィンドウ クラスの名前を含む null で終わる文字列へのポインター。または定義済みのシステム ウィンドウ クラスの名前。
lpszWindowName
ウィンドウ表示名を含む null で終わる文字列へのポインター。それ以外の場合 NULL
は、ウィンドウ表示名がありません。
dwStyle
ウィンドウ スタイルのビットごとの組み合わせ (OR)。それ以外の場合NULL
は、既定のウィンドウ スタイルの場合は 。
x
画面の左側または親ウィンドウからのウィンドウの初期水平距離。
y
画面の上部または親ウィンドウからのウィンドウの最初の垂直方向の距離。
nWidth
ウィンドウの幅 (ピクセル単位)。
nHeight
ウィンドウの高さ (ピクセル単位)。
hwndParent
子ウィンドウの場合は、親ウィンドウへのハンドル。それ以外の場合は、ウィンドウに所有者がある場合の所有者ウィンドウのハンドル。
nIDorHMenu
子ウィンドウの場合は、ウィンドウ ID。それ以外の場合は、ウィンドウのメニューの ID。
lpParam
フィールドの lpCreateParams
メソッドに渡されるユーザー データへのCWnd::OnCreate
ポインター。
rect
画面または親ウィンドウに対するウィンドウのサイズと位置。
pParentWnd
子ウィンドウの場合は、親ウィンドウへのポインター。それ以外の場合は、ウィンドウに所有者がある場合は、所有者ウィンドウへのポインター。
nID
子ウィンドウの場合は、ウィンドウ ID。それ以外の場合は、ウィンドウのメニューの ID。
戻り値
TRUE
メソッドが成功した場合は 。それ以外の場合 FALSE
は 。
解説
警告
CWnd::PreCreateWindow
メニューが で、スタイルに hMenu
が含まれているWS_CHILD
場合、this
そのCREATESTRUCT
パラメーターのメンバーがNULL
ポインターに割り当てられるようになりました。 適切な機能を実現するには、ダイアログ コントロールに ではない NULL
ID があることを確認します。
この変更により、マネージド/ネイティブ相互運用シナリオでのクラッシュが修正されます。 TRACE
の ステートメントはCWnd::Create
、問題の開発者に警告します。
既定の拡張ウィンドウ スタイルは です WS_EX_LEFT
。 既定のウィンドウ スタイルは です WS_OVERLAPPED
。
関数を AfxRegisterWndClass
使用して、ウィンドウ クラスを登録します。 ユーザー定義ウィンドウ クラスは、登録されているモジュールで使用できます。
子ウィンドウのディメンションは、親ウィンドウのクライアント領域の左上隅を基準にしています。 トップレベル ウィンドウのディメンションは、画面の左上隅を基準にしています。
メソッドは CWnd::OnCreate
、メソッドが CreateEx
戻る前と、ウィンドウが表示される前に呼び出されます。
例
void CMyDlg::OnCreateExtendedControl()
{
// m_pWndStaticEx is a CWnd* member of CMyDlg
m_pWndStaticEx = new CStatic;
m_pWndStaticEx->CreateEx(WS_EX_CLIENTEDGE, // Make a client edge label.
_T("STATIC"), _T("Hi"),
WS_CHILD | WS_TABSTOP | WS_VISIBLE,
5, 5, 30, 30, m_hWnd, (HMENU)2345);
}
CWnd::CreateGrayCaret
システム キャレットの灰色の四角形を作成し、キャレットの所有権を要求します。
void CreateGrayCaret(
int nWidth,
int nHeight);
パラメーター
nWidth
キャレットの幅を指定します (論理単位)。 このパラメーターが 0 の場合、幅はシステム定義のウィンドウ罫線の幅に設定されます。
nHeight
キャレットの高さを指定します (論理単位)。 このパラメーターが 0 の場合、高さはシステム定義のウィンドウ罫線の高さに設定されます。
注釈
キャレット図形には、線またはブロックを指定できます。
パラメーターとnHeight
、nWidth
キャレットの幅と高さ (論理単位) を指定します。正確な幅と高さ (ピクセル単位) はマッピング モードによって異なります。
システムのウィンドウ罫線の幅または高さは、 および SM_CYBORDER
インデックスを使用SM_CXBORDER
して GetSystemMetrics
Windows 関数によって取得できます。 ウィンドウ罫線の幅または高さを使用すると、キャレットが高解像度ディスプレイに確実に表示されます。
メンバー関数は CreateGrayCaret
、キャレットを所有するウィンドウに関係なく、前のキャレット図形 (存在する場合) を自動的に破棄します。 作成されると、キャレットは最初は非表示になります。 キャレットを表示するには、メンバー関数を ShowCaret
呼び出す必要があります。
システム キャレットは共有リソースです。 CWnd
は、入力フォーカスがある場合、またはアクティブな場合にのみキャレットを作成する必要があります。 キャレットは、入力フォーカスを失うか非アクティブになる前に破棄する必要があります。
例
// Create a 5x10 gray caret in the edit control.
void CMyDlg::OnCreateGrayCaret()
{
m_MyEdit.CreateGrayCaret(5, 10);
m_MyEdit.ShowCaret();
}
CWnd::CreateSolidCaret
システム キャレットのソリッド四角形を作成し、キャレットの所有権を要求します。
void CreateSolidCaret(
int nWidth,
int nHeight);
パラメーター
nWidth
キャレットの幅を指定します (論理単位)。 このパラメーターが 0 の場合、幅はシステム定義のウィンドウ罫線の幅に設定されます。
nHeight
キャレットの高さを指定します (論理単位)。 このパラメーターが 0 の場合、高さはシステム定義のウィンドウ罫線の高さに設定されます。
注釈
キャレット図形には、線またはブロックを指定できます。
パラメーターとnHeight
、nWidth
キャレットの幅と高さ (論理単位) を指定します。正確な幅と高さ (ピクセル単位) はマッピング モードによって異なります。
システムのウィンドウ罫線の幅または高さは、 および SM_CYBORDER
インデックスを使用SM_CXBORDER
して GetSystemMetrics
Windows 関数によって取得できます。 ウィンドウ罫線の幅または高さを使用すると、キャレットが高解像度ディスプレイに確実に表示されます。
メンバー関数は CreateSolidCaret
、キャレットを所有するウィンドウに関係なく、前のキャレット図形 (存在する場合) を自動的に破棄します。 作成されると、キャレットは最初は非表示になります。 キャレットを表示するには、メンバー関数を ShowCaret
呼び出す必要があります。
システム キャレットは共有リソースです。 CWnd
は、入力フォーカスがある場合、またはアクティブな場合にのみキャレットを作成する必要があります。 キャレットは、入力フォーカスを失うか非アクティブになる前に破棄する必要があります。
例
// Create a 5x10 solid caret in the edit control.
void CMyDlg::OnCreateSolidCaret()
{
m_MyEdit.CreateSolidCaret(5, 10);
m_MyEdit.ShowCaret();
}
CWnd::CWnd
CWnd
オブジェクトを構築します。
CWnd();
注釈
または Create
メンバー関数が呼び出されるまでCreateEx
、Windows ウィンドウは作成およびアタッチされません。
CWnd::Default
既定のウィンドウ プロシージャを呼び出します。
LRESULT Default();
戻り値
送信されるメッセージによって異なります。
注釈
既定のウィンドウ プロシージャは、アプリケーションが処理しないウィンドウ メッセージに対して既定の処理を提供します。 このメンバー関数を使用すると、すべてのメッセージが確実に処理されます。
例
// This sample shows how to avoid any button handling in base class,
// if any, and call the default window procedure directly.
void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
UNREFERENCED_PARAMETER(nFlags);
UNREFERENCED_PARAMETER(point);
CWnd::Default();
}
CWnd::DefWindowProc
既定のウィンドウ プロシージャを呼び出します。これにより、アプリケーションが処理しないウィンドウ メッセージの既定の処理が提供されます。
virtual LRESULT DefWindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
パラメーター
message
処理する Windows メッセージを指定します。
wParam
追加のメッセージ依存情報を指定します。
lParam
追加のメッセージ依存情報を指定します。
戻り値
送信されるメッセージによって異なります。
注釈
このメンバー関数を使用すると、すべてのメッセージが確実に処理されます。 ウィンドウ プロシージャで受け取ったパラメーターと同じパラメーターを使用して呼び出す必要があります。
CWnd::DeleteTempMap
オブジェクトのアイドル時間ハンドラーによって自動的に CWinApp
呼び出されます。
static void PASCAL DeleteTempMap();
注釈
メンバー関数によって作成された一時 CWnd
オブジェクトを FromHandle
削除します。
例
// DeleteTempMap() is a static member and does not need
// to be called within the scope of an instantiated CWnd object.
CWnd::DeleteTempMap();
CWnd::DestroyWindow
オブジェクトにアタッチされている Windows ウィンドウを CWnd
破棄します。
virtual BOOL DestroyWindow();
戻り値
ウィンドウが破棄された場合は 0 以外。それ以外の場合は 0。
注釈
メンバー関数は DestroyWindow
、ウィンドウに適切なメッセージを送信して非アクティブ化し、入力フォーカスを削除します。 また、ウィンドウのメニューが破棄され、アプリケーション キューがフラッシュされ、未処理のタイマーが破棄され、クリップボードの所有権が削除され、ビューアー チェーンの上部にある場合 CWnd
はクリップボード ビューアー チェーンが中断されます。 ウィンドウに メッセージと WM_NCDESTROY
メッセージを送信WM_DESTROY
します。 オブジェクトは CWnd
破棄されません。
DestroyWindow
はクリーンアップを実行するためのプレース ホルダーです。 は仮想関数であるため DestroyWindow
、クラス ビューの任意 CWnd
の派生クラスに表示されます。 ただし、派生クラスでこの関数を CWnd
オーバーライドしても、 DestroyWindow
は必ずしも呼び出されるとは限りません。 が MFC コードで呼び出されない場合 DestroyWindow
は、呼び出す場合は、独自のコードで明示的に呼び出す必要があります。
たとえば、派生クラスでCView
オーバーライドDestroyWindow
したとします。 MFC ソース コードは派生クラスのいずれCFrameWnd
でも呼び出DestroyWindow
されないため、明示的に呼び出さない限り、オーバーライドされた DestroyWindow
は呼び出されません。
ウィンドウがウィンドウの親である場合、親ウィンドウが破棄されると、これらの子ウィンドウは自動的に破棄されます。 メンバー関数は DestroyWindow
、最初に子ウィンドウを破棄し、次にウィンドウ自体を破棄します。
メンバー関数は DestroyWindow
、 によって CDialog::Create
作成されたモードレス ダイアログ ボックスも破棄します。
破棄される が CWnd
子ウィンドウであり、スタイルが WS_EX_NOPARENTNOTIFY
設定されていない場合、 WM_PARENTNOTIFY
メッセージは親に送信されます。
例
// CModeless is a CDialog class representing a modeless dialog
// Destruction of the modeless dialog involves calling DestroyWindow in
// OnOK() & OnCancel() handlers
void CModeless::OnOK()
{
if (!UpdateData(TRUE))
{
TRACE(_T("UpdateData failed during dialog termination\n"));
// The UpdateData routine will set focus to correct item
return;
}
DestroyWindow();
}
void CModeless::OnCancel()
{
DestroyWindow();
}
CWnd::Detach
CWnd
オブジェクトから Windows のハンドルを切り離し、そのハンドルを返します。
HWND Detach();
戻り値
HWND
Windows オブジェクトの 。
例
CWnd::Attach
の例を参照してください。
CWnd::DlgDirList
リスト ボックスにファイル リストまたはディレクトリ リストを設定します。
int DlgDirList(
LPTSTR lpPathSpec,
int nIDListBox,
int nIDStaticPath,
UINT nFileType);
パラメーター
lpPathSpec
パスまたはファイル名を含む null で終わる文字列を指します。 DlgDirList
は、この文字列を変更します。これは、変更を含めるのに十分な長さである必要があります。 詳細については、次の「解説」セクションを参照してください。
nIDListBox
リスト ボックスの識別子を指定します。 が 0 の場合 nIDListBox
は、 DlgDirList
リスト ボックスが存在せず、リスト ボックスの入力を試みないことを前提としています。
nIDStaticPath
現在のドライブとディレクトリの表示に使用される静的テキスト コントロールの識別子を指定します。 が 0 の場合 nIDStaticPath
は、 DlgDirList
そのようなテキスト コントロールが存在しないと想定します。
nFileType
表示するファイルの属性を指定します。 次の値の任意の組み合わせを指定できます。
DDL_READWRITE
追加の属性を持たない読み取り/書き込みデータ ファイル。DDL_READONLY
読み取り専用ファイル。DDL_HIDDEN
隠しファイル。DDL_SYSTEM
システム ファイル。DDL_DIRECTORY
ディレクトリ。DDL_ARCHIVE
アーカイブ。DDL_POSTMSGS
LB_DIR
フラグ。 フラグがLB_DIR
設定されている場合、Windows は によってDlgDirList
生成されたメッセージをアプリケーションのキューに配置します。それ以外の場合は、ダイアログ ボックス プロシージャに直接送信されます。DDL_DRIVES
ドライブ。 フラグがDDL_DRIVES
設定されている場合、DDL_EXCLUSIVE
フラグは自動的に設定されます。 したがって、ドライブとファイルを含むディレクトリ一覧を作成するには、2 回を呼び出すDlgDirList
必要があります。1 回はフラグをDDL_DRIVES
設定し、1 回はリストの残りの部分のフラグを使用します。DDL_EXCLUSIVE
排他的ビット。 排他ビットが設定されている場合は、指定されたタイプのファイルのみがリストされます。それ以外の場合は、指定した種類の通常のファイルとファイルが一覧表示されます。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
DlgDirList
LB_DIR
と メッセージをリスト ボックスに送信LB_RESETCONTENT
します。 によって指定されたリスト ボックスに、 によって nIDListBox
指定されたパス lpPathSpec
と一致するすべてのファイルの名前が入力されます。
パラメーターの lpPathSpec
形式は次のとおりです。
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
この例では、 drive
はドライブ文字、 directory
は有効なディレクトリ名であり、 filename
少なくとも 1 つのワイルドカードを含む必要がある有効なファイル名です。 ワイルドカードは疑問符 (?) です。これは任意の文字に一致し、アスタリスク (*) は任意の数の文字に一致します。
に長さ 0 の文字列 lpPathSpec
を指定した場合、またはディレクトリ名のみを指定してもファイル指定を含まない場合、文字列は "*.*" に変更されます。
ドライブやディレクトリ名が含まれている場合 lpPathSpec
、現在のドライブとディレクトリは、リスト ボックスが入力される前に、指定されたドライブとディレクトリに変更されます。 によって nIDStaticPath
識別されるテキスト コントロールも、新しいドライブやディレクトリ名で更新されます。
リスト ボックスが入力されると、 lpPathSpec
パスのドライブやディレクトリ部分を削除して更新されます。
例
// If pDialog points to a CDialog object with a list box
// with the identifier IDC_DIRLIST, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR path[MAX_PATH];
_tcscpy_s(path, MAX_PATH, _T("C:\\"));
pDialog->DlgDirList(path, IDC_DIRLIST, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);
CWnd::DlgDirListComboBox
コンボ ボックスにファイル リストまたはディレクトリ リストを設定します。
int DlgDirListComboBox(
LPTSTR lpPathSpec,
int nIDComboBox,
int nIDStaticPath,
UINT nFileType);
パラメーター
lpPathSpec
パスまたはファイル名を含む null で終わる文字列を指します。 DlgDirListComboBox
は、この文字列を変更するため、このデータを文字列リテラルの形式にすることはできません。 次の「備考」セクションを参照してください。
nIDComboBox
ダイアログ ボックス内のコンボ ボックスの識別子を指定します。 が 0 の場合 nIDComboBox
は、 DlgDirListComboBox
コンボ ボックスが存在せず、コンボ ボックスを埋めようとしないことを前提としています。
nIDStaticPath
現在のドライブとディレクトリの表示に使用される静的テキスト コントロールの識別子を指定します。 が 0 の場合 nIDStaticPath
は、 DlgDirListComboBox
そのようなテキスト コントロールが存在しないと想定します。
nFileType
表示するファイルの DOS ファイル属性を指定します。 次の値の任意の組み合わせを指定できます。
DDL_READWRITE
追加の属性を持たない読み取り/書き込みデータ ファイル。DDL_READONLY
読み取り専用ファイル。DDL_HIDDEN
隠しファイル。DDL_SYSTEM
システム ファイル。DDL_DIRECTORY
ディレクトリ。DDL_ARCHIVE
アーカイブ。DDL_POSTMSGS
CB_DIR
フラグ。 フラグがCB_DIR
設定されている場合、Windows は によってDlgDirListComboBox
生成されたメッセージをアプリケーションのキューに配置します。それ以外の場合は、ダイアログ ボックス プロシージャに直接送信されます。DDL_DRIVES
ドライブ。 フラグがDDL_DRIVES
設定されている場合、DDL_EXCLUSIVE
フラグは自動的に設定されます。 したがって、ドライブとファイルを含むディレクトリ一覧を作成するには、2 回を呼び出すDlgDirListComboBox
必要があります。1 回はフラグをDDL_DRIVES
設定し、1 回はリストの残りの部分のフラグを使用します。DDL_EXCLUSIVE
排他的ビット。 排他ビットが設定されている場合は、指定されたタイプのファイルのみがリストされます。それ以外の場合は、指定した種類の通常のファイルとファイルが一覧表示されます。
戻り値
関数の結果を指定します。 リストが作成された場合、空のリストであっても、0 以外の値になります。 0 の戻り値は、入力文字列に有効な検索パスが含まれていないことを意味します。
注釈
DlgDirListComboBox
CB_DIR
と メッセージをコンボ ボックスに送信CB_RESETCONTENT
します。 指定されたコンボ ボックスのリスト ボックスに、 によって nIDComboBox
指定されたパス lpPathSpec
と一致するすべてのファイルの名前が入力されます。
パラメーターの lpPathSpec
形式は次のとおりです。
[drive:] [ [\u]directory[\idirectory]...\u] [filename]
この例では、 drive
はドライブ文字、 directory
は有効なディレクトリ名であり、 filename
少なくとも 1 つのワイルドカードを含む必要がある有効なファイル名です。 ワイルドカードは疑問符 (?) です。これは任意の文字に一致し、アスタリスク (*) は任意の数の文字に一致します。
に長さ 0 の lpPathSpec
文字列を指定すると、現在のディレクトリが使用され、 lpPathSpec
変更されません。 ディレクトリ名のみを指定したが、ファイル指定を含まない場合、文字列は "*" に変更されます。
ドライブやディレクトリ名が含まれている場合 lpPathSpec
、現在のドライブとディレクトリは、リスト ボックスが入力される前に、指定されたドライブとディレクトリに変更されます。 によって nIDStaticPath
識別されるテキスト コントロールも、新しいドライブやディレクトリ名で更新されます。
コンボ ボックス リスト ボックスが入力されると、 lpPathSpec
パスのドライブまたはディレクトリ部分を削除して更新されます。
例
// If pDialog points to a CDialog object with a combo box
// with the identifier IDC_DIRCOMBO, this call will populate
// the box with only the non-hidden subdirectories in the root
// directory of the C:\ drive.
TCHAR szPath[MAX_PATH];
_tcsncpy_s(szPath, MAX_PATH, _T("C:\\"), MAX_PATH);
pDialog->DlgDirListComboBox(szPath, IDC_DIRCOMBO, 0, DDL_EXCLUSIVE | DDL_DIRECTORY);
// Note that the first argument is a string and not a string
// literal. This is necessary because DlgDirListComboBox
// modifies the supplied string. Passing a string literal
// will result in an access violation.
CWnd::DlgDirSelect
リスト ボックスから現在の選択を取得します。
BOOL DlgDirSelect(
LPTSTR lpString,
int nIDListBox);
パラメーター
lpString
リスト ボックスで現在の選択範囲を受け取るバッファーを指します。
nIDListBox
ダイアログ ボックスのリスト ボックスの整数 ID を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
リスト ボックスがメンバー関数によって DlgDirList
入力されていること、および選択範囲がドライブ文字、ファイル、またはディレクトリ名であることを前提としています。
メンバー関数は DlgDirSelect
、 によって lpString
指定されたバッファーに選択範囲をコピーします。 選択 lpString
がない場合、 は変更されません。
DlgDirSelect
LB_GETTEXT
と メッセージをリスト ボックスに送信LB_GETCURSEL
します。
リスト ボックスから複数のファイル名を返すことはありません。 リスト ボックスは複数選択リスト ボックスにすることはできません。
CWnd::DlgDirSelectComboBox
コンボ ボックスから現在の選択を取得します。
BOOL DlgDirSelectComboBox(
LPTSTR lpString,
int nIDComboBox);
パラメーター
lpString
選択したパスを受け取るバッファーを指します。
nIDComboBox
ダイアログ ボックスのコンボ ボックスの整数 ID を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
リスト ボックスがメンバー関数によって DlgDirListComboBox
入力されていること、および選択範囲がドライブ文字、ファイル、またはディレクトリ名であることを前提としています。
メンバー関数は DlgDirSelectComboBox
、選択範囲を指定したバッファーにコピーします。 選択がない場合、バッファーの内容は変更されません。
DlgDirSelectComboBox
と CB_GETLBTEXT
メッセージをコンボ ボックスに送信CB_GETCURSEL
します。
コンボ ボックスから複数のファイル名を返すことはありません。
CWnd::DoDataExchange
ダイアログ データを交換および検証するためにフレームワークによって呼び出されます。
virtual void DoDataExchange(CDataExchange* pDX);
パラメーター
pDX
CDataExchange
オブジェクトを指すポインターです。
解説
この関数を直接呼び出すことはありません。 メンバー関数によって呼び出されます UpdateData
。 を呼び出 UpdateData
して、ダイアログ ボックスのコントロールを初期化するか、ダイアログ ボックスからデータを取得します。
から CDialog
アプリケーション固有のダイアログ クラスを派生させる場合、フレームワークの自動データ交換と検証を利用する場合は、このメンバー関数をオーバーライドする必要があります。 変数の追加ウィザードは、ダイアログ データ交換 (DDX) と検証 (DDV) グローバル関数呼び出しの目的の "データ マップ" を含む、このメンバー関数のオーバーライドされたバージョンを記述します。
このメンバー関数のオーバーライドされたバージョンを自動的に生成するには、まずダイアログ エディターを使用してダイアログ リソースを作成し、次にアプリケーション固有のダイアログ クラスを派生させます。 次に、変数の追加ウィザードを使用して、変数、データ、検証範囲を新しいダイアログ ボックスのさまざまなコントロールに関連付けます。 次に、データ マップを含むオーバーライドされた DoDataExchange
がウィザードによって書き込まれます。 変数の追加ウィザードによって生成される DDX/DDV コード ブロックの例を次に示します。
void CPenWidthsDlg::DoDataExchange(CDataExchange *pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_THINPENWIDTH, m_nThinWidth);
DDV_MinMaxInt(pDX, m_nThinWidth, 1, 20);
DDX_Text(pDX, IDC_THICKPENWIDTH, m_nThickWidth);
DDV_MinMaxInt(pDX, m_nThickWidth, 1, 20);
}
オーバーライドされたメンバー関数は DoDataExchange
、ソース ファイル内のマクロ ステートメントの前に置く必要があります。
ダイアログ データの交換と検証の詳細については、「フォームおよびダイアログ データ交換と検証でのデータの表示と操作」を参照してください。 変数の追加ウィザードによって生成されるDDX_マクロとDDV_ マクロの説明については、「 Technical Note 26」を参照してください。
CWnd::DragAcceptFiles
アプリケーションCWinApp::InitInstance
の関数でポインターをCWnd
使用して、ウィンドウ内からこのメンバー関数を呼び出して、ウィンドウが Windows ファイル マネージャーまたはエクスプローラーから削除されたファイルを受け入れることを示します。
void DragAcceptFiles(BOOL bAccept = TRUE);
パラメーター
BAccept
ドラッグされたファイルを受け入れるかどうかを示すフラグ。
注釈
パラメーターを にTRUE
設定して をbAccept
呼び出すDragAcceptFiles
ウィンドウのみが、Windows メッセージ WM_DROPFILES
を処理できることを確認しました。 たとえば、MDI アプリケーションでは、ウィンドウ ポインターが関数呼び出しでDragAcceptFiles
使用されている場合CMDIFrameWnd
、ウィンドウのみがCMDIFrameWnd
メッセージをWM_DROPFILES
取得します。 このメッセージは、開 CMDIChildWnd
いているすべてのウィンドウに送信されるわけではありません。 ウィンドウがこのCMDIChildWnd
メッセージを受信するには、ウィンドウ ポインターを使用して を呼び出すDragAcceptFiles
CMDIChildWnd
必要があります。
ドラッグされたファイルの受信を中止するには、 を に設定してメンバー関数をbAccept
FALSE
呼び出します。
CWnd::DragDetect
マウスをキャプチャし、ユーザーが左ボタンを離すか、Esc キーを押すか、または指定した点を中心にしたドラッグ四角形の外にマウスを移動するまで、移動を追跡します。
BOOL DragDetect(POINT pt) const;
パラメーター
pt
マウスの初期位置 (画面座標)。 関数は、この点を使用してドラッグ四角形の座標を決定します。
戻り値
ユーザーが左ボタンを押したままドラッグ四角形の外側にマウスを移動した場合、戻り値は 0 以外になります。
ユーザーが左ボタンを押したままドラッグ四角形の外側にマウスを移動しなかった場合、戻り値は 0 になります。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 DragDetect
の機能をエミュレートします。
CWnd::DrawAnimatedRects
アイコンを開く動作や、ウィンドウの最小化または最大化の動作を、ワイヤ フレームの四角形のアニメーションで表します。
BOOL DrawAnimatedRects(
int idAni,
CONST RECT* lprcFrom,
CONST RECT* lprcTo);
パラメーター
idAni
アニメーションの種類を指定します。 を指定 IDANI_CAPTION
した場合、ウィンドウ キャプションは、 で lprcFrom
指定された位置から で lprcTo
指定された位置までアニメーション化されます。 この効果は、ウィンドウを最小化または最大化することに似ています。
lprcFrom
アイコンまたは最小化されたウィンドウの場所とサイズを指定する構造体への RECT
ポインター。
lprcTo
復元されたウィンドウの RECT
場所とサイズを指定する構造体へのポインター
戻り値
関数が正常終了した場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 DrawAnimatedRects
の機能をエミュレートします。
CWnd::DrawCaption
ウィンドウキャプションを描画します。
BOOL DrawCaption(
CDC* pDC,
LPCRECT lprc,
UINT uFlags);
パラメーター
pDC
デバイス コンテキストへのポインター。 関数は、このデバイス コンテキストにウィンドウ キャプションを描画します。
lprc
ウィンドウ キャプションの RECT
外接する四角形を指定する構造体へのポインター。
uFlags
描画オプションを指定します。 値の完全な一覧については、「」を参照してください DrawCaption
。
戻り値
関数が正常終了した場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 DrawCaption
の機能をエミュレートします。
CWnd::DrawMenuBar
メニュー バーを再描画します。
void DrawMenuBar();
注釈
Windows がウィンドウを作成した後にメニュー バーが変更された場合は、この関数を呼び出して、変更されたメニュー バーを描画します。
例
CWnd::GetMenu
の例を参照してください。
CWnd::EnableActiveAccessibility
ユーザー定義の Active Accessibility 関数を有効にします。
void EnableActiveAccessibility();
注釈
MFC の既定の Active Accessibility サポートは、ActiveX コントロールを含む標準のウィンドウとコントロールに対して十分です。ただし、派生クラスに CWnd
ウィンドウなしのユーザー インターフェイス要素が含まれている場合、MFC にはそれらの要素を知る方法はありません。 その場合は、クラス内の適切な Active Accessibility メンバー関数 をオーバーライドし、クラスのコンストラクターで を呼び出す EnableActiveAccessibility
必要があります。
CWnd::EnableDynamicLayout
動的レイアウト マネージャーを有効または無効にします。 動的レイアウトが有効な場合は、ユーザーがウィンドウのサイズを変更したときに、子ウィンドウの位置とサイズを動的に調整できます。
void EnableDynamicLayout(BOOL bEnable = TRUE);
パラメーター
bEnable
TRUE
動的レイアウトを有効にするには、 FALSE
動的レイアウトを無効にします。
注釈
動的レイアウトを有効にする場合は、このメソッドを呼び出す以外にも必要な作業があります。 ウィンドウ内のコントロールがサイズ変更にどのように応答するかを指定する、動的レイアウト情報も提供する必要があります。 この情報は、コントロールごとに、リソース エディターで指定することも、プログラムで指定することもできます。 「動的レイアウト」を参照してください。
CWnd::EnableD2DSupport
ウィンドウの D2D のサポートを有効または無効にします。 このメソッドは、メイン ウィンドウが初期化される前に呼び出します。
void EnableD2DSupport(
BOOL bEnable = TRUE,
BOOL bUseDCRenderTarget = FALSE);
パラメーター
bEnable
ウィンドウの D2D のサポートをオンにするかオフにするかを指定します。
bUseDCRenderTarget
デバイス コンテキスト (DC) レンダー ターゲット CDCRenderTarget
を使用するかどうかを指定します。 FALSE
の場合、CHwndRenderTarget
が使用されます。
CWnd::EnableScrollBar
スクロール バーの矢印の一方または両方を有効または無効にします。
BOOL EnableScrollBar(
int nSBFlags,
UINT nArrowFlags = ESB_ENABLE_BOTH);
パラメーター
nSBFlags
スクロール バーの種類を指定します。 次のいずれかの値になります。
SB_BOTH
ウィンドウに関連付けられている水平スクロール バーと垂直スクロール バーの矢印を有効または無効にします。SB_HORZ
ウィンドウに関連付けられている水平スクロール バーの矢印を有効または無効にします。SB_VERT
ウィンドウに関連付けられている垂直スクロール バーの矢印を有効または無効にします。
nArrowFlags
スクロール バーの矢印を有効または無効にするか、および有効または無効にする矢印を指定します。 次のいずれかの値になります。
ESB_ENABLE_BOTH
スクロール バーの両方の矢印を有効にします (既定値)。ESB_DISABLE_LTUP
水平スクロール バーの左矢印または垂直スクロール バーの上矢印を無効にします。ESB_DISABLE_RTDN
水平スクロール バーの右矢印または垂直スクロール バーの下矢印を無効にします。ESB_DISABLE_BOTH
スクロール バーの両方の矢印を無効にします。
戻り値
指定した矢印が有効または無効になっている場合は 0 以外。 それ以外の場合は 0 で、矢印が既に要求された状態であるか、エラーが発生したことを示します。
CWnd::EnableScrollBarCtrl
このウィンドウのスクロール バーを有効または無効にします。
void EnableScrollBarCtrl(
int nBar,
BOOL bEnable = TRUE);
パラメーター
nBar
スクロール バー識別子。
bEnable
スクロール バーを有効にするか無効にするかを指定します。
注釈
ウィンドウに兄弟スクロール バー コントロールがある場合は、そのスクロール バーが使用されます。それ以外の場合は、ウィンドウの独自のスクロール バーが使用されます。
CWnd::EnableToolTips
指定されたウィンドウのツール ヒントを有効にします。
BOOL EnableToolTips(BOOL bEnable = TRUE);
パラメーター
bEnable
ツール ヒント コントロールを有効または無効にするかどうかを指定します。 TRUE
コントロールを有効にします。 FALSE
コントロールを無効にします。
戻り値
TRUE
ツール ヒントが有効になっている場合。それ以外の場合 FALSE
は 。
注釈
をオーバーライド OnToolHitTest
して、ウィンドウの TOOLINFO
構造体または構造体を指定します。
注意
などの CToolBar
一部のウィンドウでは、 の組み込みの実装が OnToolHitTest
提供されます。
この構造の詳細については TOOLINFO
、Windows SDK を参照してください。
を呼び出 EnableToolTips
すだけでは、親ウィンドウが から CFrameWnd
派生していない限り、子コントロールのツール ヒントを表示するには不十分です。 これは、通知の既定のハンドラーをTTN_NEEDTEXT
提供するためCFrameWnd
です。 親ウィンドウが から CFrameWnd
派生していない場合、つまりダイアログ ボックスまたはフォーム ビューの場合、ツール ヒント通知のハンドラーを指定しない限り、子コントロールの TTN_NEEDTEXT
ツール ヒントは正しく表示されません。 「ツール ヒント」を参照してください。
によって提供される既定の EnableToolTips
ツール ヒントには、テキストが関連付けられません。 ツール ヒントが表示されるテキストを取得するために、 TTN_NEEDTEXT
ツール ヒント ウィンドウが表示される直前に、通知がツール ヒント コントロールの親ウィンドウに送信されます。 構造体のメンバーTOOLTIPTEXT
に何らかの値pszText
を割り当てるハンドラーがこのメッセージに存在しない場合、ツール ヒントのテキストは表示されません。
例
// From message map for CMdiView, a CView-derived class
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
void CMdiView::OnInitialUpdate()
{
CView::OnInitialUpdate();
m_Edit.Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
CRect(10, 10, 100, 100), this, IDC_TTEDIT);
EnableToolTips(TRUE); // enable tool tips for view
}
//Notification handler
BOOL CMdiView::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
UNREFERENCED_PARAMETER(id);
UNREFERENCED_PARAMETER(pResult);
// need to handle both ANSI and UNICODE versions of the message
TOOLTIPTEXTA *pTTTA = (TOOLTIPTEXTA*)pNMHDR;
TOOLTIPTEXTW *pTTTW = (TOOLTIPTEXTW*)pNMHDR;
CStringA strTipText;
UINT_PTR nID = pNMHDR->idFrom;
if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
{
// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
}
if (nID != 0) // will be zero on a separator
strTipText.Format("Control ID = %d", nID);
if (pNMHDR->code == TTN_NEEDTEXTA)
{
strncpy_s(pTTTA->szText, sizeof(pTTTA->szText), strTipText,
strTipText.GetLength() + 1);
}
else
{
::MultiByteToWideChar(CP_ACP, 0, strTipText, strTipText.GetLength() + 1,
pTTTW->szText, sizeof(pTTTW->szText) / (sizeof pTTTW->szText[0]));
}
return TRUE; // message was handled
}
CWnd::EnableTrackingToolTips
追跡ツールヒントを有効または無効にします。
BOOL EnableTrackingToolTips(BOOL bEnable = TRUE);
パラメーター
bEnable
追跡ツール ヒントを有効または無効にするかどうかを指定します。 このパラメーターが の場合、 TRUE
追跡ツール ヒントが有効になります。 このパラメーターが の場合、 FALSE
追跡ツールヒントは無効になります。
戻り値
メンバー関数が呼び出される前の状態を EnableWindow
示します。 ウィンドウが以前に無効になっていた場合、戻り値は 0 以外です。 ウィンドウが以前に有効になっていたか、エラーが発生した場合、戻り値は 0 です。
注釈
追跡ツール ヒントは、画面上に動的に配置できるツール ヒント ウィンドウです。 位置を迅速に更新することで、ツール ヒント ウィンドウがスムーズに移動するように表示されます。つまり、"追跡" します。この機能は、ポインターが移動するときにポインターの位置に従うためにツール ヒント テキストが必要な場合に便利です。
CWnd::EnableWindow
マウス入力およびキーボード入力を有効または無効にします。
BOOL EnableWindow(BOOL bEnable = TRUE);
パラメーター
bEnable
指定されたウィンドウを有効または無効にするかどうかを指定します。 このパラメーターが の場合、 TRUE
ウィンドウは有効になります。 このパラメーターが の FALSE
場合、ウィンドウは無効になります。
戻り値
メンバー関数が呼び出される前の状態を EnableWindow
示します。 ウィンドウが以前に無効になっていた場合、戻り値は 0 以外です。 ウィンドウが以前に有効になっていたか、エラーが発生した場合、戻り値は 0 です。
注釈
入力を無効にすると、マウスクリックやキーストロークなどの入力は無視されます。 入力が有効になっている場合、ウィンドウはすべての入力を処理します。
有効な状態が変更されている場合、この関数が WM_ENABLE
返される前にメッセージが送信されます。
無効にした場合、すべての子ウィンドウは暗黙的に無効になりますが、メッセージは送信 WM_ENABLE
されません。
アクティブ化するには、ウィンドウを有効にする必要があります。 たとえば、アプリケーションでモードレス ダイアログ ボックスが表示され、メイン ウィンドウが無効になっている場合、ダイアログ ボックスが破棄される前にメイン ウィンドウを有効にする必要があります。 それ以外の場合、別のウィンドウで入力フォーカスが取得され、アクティブになります。 子ウィンドウが無効になっている場合、Windows がマウス メッセージを取得するウィンドウを決定しようとしたときに無視されます。
既定では、ウィンドウは作成時に有効になります。 アプリケーションでは、 または CreateEx
メンバー関数でスタイルをCreate
指定WS_DISABLED
して、最初に無効になっているウィンドウを作成できます。 ウィンドウが作成されたら、アプリケーションでメンバー関数を EnableWindow
使用して、ウィンドウを有効または無効にすることもできます。
アプリケーションは、この関数を使用して、ダイアログ ボックス内のコントロールを有効または無効にすることができます。 無効になっているコントロールは、入力フォーカスを受け取ることも、ユーザーがアクセスすることもできません。
例
//CMyFileDialog is a CFileDialog-derived class
//OnInitDialog is the handler for WM_INITDIALOG
BOOL CMyFileDialog::OnInitDialog()
{
CFileDialog::OnInitDialog();
CWnd *pWndParent = GetParent();
//make sure you add #include <dlgs.h> for IDs 'edt1' & 'stc3'
//disables the 'file name' edit and static control
//of the standard file open dialog
//get handle of 'file name' combobox control & disable it
CWnd *pWnd = pWndParent->GetDlgItem(cmb13);
pWnd->EnableWindow(FALSE);
//get handle of 'file name' static control & disable it
pWnd = pWndParent->GetDlgItem(stc3);
pWnd->EnableWindow(FALSE);
return TRUE;
}
CWnd::EndModalLoop
への呼び出しを終了します RunModalLoop
。
virtual void EndModalLoop(int nResult);
パラメーター
nResult
の呼び出し元 RunModalLoop
に返される値を格納します。
注釈
パラメーターは nResult
から RunModalLoop
戻り値に反映されます。
CWnd::EndModalState
フレーム ウィンドウをモーダルからモードレスに変更します。
virtual void EndModalState();
CWnd::EndPaint
指定したウィンドウで描画の終了をマークします。
void EndPaint(LPPAINTSTRUCT lpPaint);
パラメーター
lpPaint
PAINTSTRUCT
メンバー関数によって取得された描画情報を含む構造体を指しますBeginPaint
。
注釈
EndPaint
メンバー関数は、メンバー関数のBeginPaint
呼び出しごとに必要ですが、描画が完了した後にのみ必要です。
キャレットがメンバー関数によって BeginPaint
非表示にされた場合は、 EndPaint
キャレットを画面に復元します。
例
CWnd::BeginPaint
の例を参照してください。
CWnd::ExecuteDlgInit
ダイアログ リソースを開始します。
BOOL ExecuteDlgInit(LPCTSTR lpszResourceName);
BOOL ExecuteDlgInit(LPVOID lpResource);
パラメーター
lpszResourceName
リソースの名前を指定する null で終わる文字列へのポインター。
lpResource
リソースへのポインター。
戻り値
TRUE
ダイアログ リソースが実行された場合。それ以外の場合 FALSE
は 。
注釈
ExecuteDlgInit
は、実行中のモジュールにバインドされたリソース、または他のソースからのリソースを使用します。 これを実現するには、 ExecuteDlgInit
を呼び出 AfxFindResourceHandle
してリソース ハンドルを検索します。 MFC アプリケーションで共有 DLL (MFCx0[U][D].DLL) AfxFindResourceHandle
を使用しない場合は、 を呼び出し AfxGetResourceHandle
、実行可能ファイルの現在のリソース ハンドルを返します。 MFCx0[U][D]を使用する MFC アプリケーションが.DLL場合は、 AfxFindResourceHandle
共有および MFC 拡張 DLL のオブジェクト リストを走査 CDynLinkLibrary
して、正しいリソース ハンドルを探します。
CWnd::FilterToolTipMessage
ツール ヒント メッセージを表示するためにフレームワークによって呼び出されます。
void FilterToolTipMessage(MSG* pMsg);
パラメーター
pMsg
ツール ヒント メッセージへのポインター。
注釈
ほとんどの MFC アプリケーションでは、このメソッドは および EnableToolTips
からPreTranslateMessage
フレームワークによって呼び出され、自分で呼び出す必要はありません。
ただし、一部の ActiveX コントロールなどの特定のアプリケーションでは、これらのメソッドがフレームワークによって呼び出されない可能性があるため、自分で呼び出す FilterToolTipMessage
必要があります。 詳細については、「 ツール ヒントの作成方法」を参照してください。
CWnd::FindWindow
ウィンドウ クラスが によって指定され、ウィンドウ名またはタイトルが によってlpszClassName
指定lpszWindowName
される最上位レベルCWnd
を返します。
static CWnd* PASCAL FindWindow(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName);
パラメーター
lpszClassName
ウィンドウのクラス名 (構造体) を指定する null で終わる文字列を WNDCLASS
指します。 が のNULL
場合lpClassName
、すべてのクラス名が一致します。
lpszWindowName
ウィンドウ名 (ウィンドウのタイトル) を指定する null で終わる文字列を指します。 が のNULL
場合lpWindowName
、すべてのウィンドウ名が一致します。
戻り値
指定したクラス名とウィンドウ名を持つウィンドウを識別します。 このようなウィンドウが NULL
見つからない場合は です。
* は CWnd
一時的なものであり、後で使用するために保存しないでください。
注釈
この関数は子ウィンドウを検索しません。
例
// activate an application with a window with a specific class name
BOOL CMyApp::FirstInstance()
{
CWnd *pWndPrev, *pWndChild;
// Determine if a window with the class name exists...
pWndPrev = CWnd::FindWindow(_T("MyNewClass"), NULL);
if (NULL != pWndPrev)
{
// If so, does it have any popups?
pWndChild = pWndPrev->GetLastActivePopup();
// If iconic, restore the main window
if (pWndPrev->IsIconic())
pWndPrev->ShowWindow(SW_RESTORE);
// Bring the main window or its popup to the foreground
pWndChild->SetForegroundWindow();
// and you are done activating the other application
return FALSE;
}
return TRUE;
}
CWnd::FindWindowEx
クラス名とウィンドウ名が指定した文字列と一致するウィンドウ オブジェクトを取得します。
static CWnd* FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow);
パラメーター
hwndParent
子ウィンドウを検索する親ウィンドウを処理します。
hwndChildAfter
子ウィンドウへのハンドル。 検索は、次の子ウィンドウで Z 順に開始されます。 子ウィンドウは、子孫ウィンドウだけでなく、 の hwndParent
直接の子ウィンドウである必要があります。
lpszClass
または への以前の呼び出しによって作成されたクラス名またはクラス アトムを指定する null で終わる文字列へのRegisterClass
RegisterClassEx
ポインター。
lpszWindow
ウィンドウ名 (ウィンドウのタイトル) を指定する null で終わる文字列へのポインター。 このパラメーターが の場合、すべてのウィンドウ名が NULL
一致します。
戻り値
関数が成功した場合、戻り値は、指定されたクラスとウィンドウ名を持つウィンドウ オブジェクトへのポインターです。 関数が失敗した場合、戻り値は です NULL
。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 FindWindowEx
の機能をエミュレートします。
CWnd::FlashWindow
指定したウィンドウを 1 回点滅します。
BOOL FlashWindow(BOOL bInvert);
パラメーター
bInvert
をフラッシュするか、元の CWnd
状態に戻すかを指定します。 CWnd
が の場合bInvert
TRUE
、 は一方の状態から他方の状態にフラッシュされます。 が FALSE
の場合bInvert
、ウィンドウは元の状態 (アクティブまたは非アクティブ) に返されます。
戻り値
メンバー関数の呼び出し FlashWindow
の前にウィンドウがアクティブだった場合は 0 以外。それ以外の場合は 0。
注釈
連続するフラッシュの場合は、システム タイマーを作成し、 を繰り返し呼び出します FlashWindow
。 を CWnd
フラッシュすると、タイトル バーの外観が非アクティブ状態からアクティブ状態に変わるかのように CWnd
変更されます。またはその逆も同様です。 (非アクティブなタイトル バーがアクティブなタイトル バーに変わり、アクティブなタイトル バーが非アクティブなタイトル バーに変わります)。
通常、ウィンドウはフラッシュされ、ユーザーに注意が必要だが、現在は入力フォーカスがないことを通知します。
パラメーターは bInvert
、 FALSE
ウィンドウが入力フォーカスを取得していて、点滅しなくなった場合にのみ指定する必要があります。入力フォーカスの取得を待機している間は、連続する呼び出しで実行する必要があります TRUE
。
この関数は、最小化されたウィンドウに対して常に 0 以外の値を返します。 ウィンドウが最小化されている場合は、 FlashWindow
ウィンドウのアイコン bInvert
が点滅します。最小化されたウィンドウでは無視されます。
例
BOOL CPenWidthsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// set timer to cause dialog to flash
SetTimer(1, 500, NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
void CPenWidthsDlg::OnTimer(UINT_PTR nIDEvent)
{
// cause the dialog to flash
FlashWindow(TRUE);
CDialog::OnTimer(nIDEvent);
}
CWnd::FlashWindowEx
指定したウィンドウをフラッシュします。
BOOL FlashWindowEx(
DWORD dwFlags,
UINT uCount,
DWORD dwTimeout);
パラメーター
*dwFlags*
フラッシュの状態を指定します。 値の完全な一覧については、 構造体を FLASHWINFO
参照してください。
uCount
ウィンドウをフラッシュする回数を指定します。
dwTimeout
ウィンドウがフラッシュされる速度をミリ秒単位で指定します。 が 0 の場合 dwTimeout
、関数は既定のカーソルの点滅率を使用します。
戻り値
戻り値は、関数の呼び出し前のウィンドウの状態を FlashWindowEx
指定します。 呼び出しの前にウィンドウキャプションがアクティブとして描画された場合、戻り値は 0 以外です。 それ以外の場合、戻り値は 0 です。
注釈
このメソッドは、Windows SDK で説明されているように、 関数 FlashWindowEx
の機能をエミュレートします。
CWnd::FromHandle
ウィンドウのハンドルが指定されている場合、CWnd
オブジェクトへのポインターを返します。 オブジェクトが CWnd
ハンドルにアタッチされていない場合は、一時 CWnd
オブジェクトが作成されてアタッチされます。
static CWnd* PASCAL FromHandle(HWND hWnd);
パラメーター
hWnd
HWND
Windows ウィンドウの 。
戻り値
ウィンドウのハンドルが指定されている場合、CWnd
オブジェクトへのポインターを返します。 オブジェクトが CWnd
ハンドルにアタッチされていない場合は、一時 CWnd
オブジェクトが作成されてアタッチされます。
ポインターは一時的な場合があり、後で使用するために格納しないでください。
CWnd::FromHandlePermanent
ウィンドウのハンドルが指定されている場合、CWnd
オブジェクトへのポインターを返します。
static CWnd* PASCAL FromHandlePermanent(HWND hWnd);
パラメーター
hWnd
HWND
Windows ウィンドウの 。
戻り値
CWnd
オブジェクトを指すポインターです。
解説
オブジェクトが CWnd
ハンドルにアタッチされていない場合は、 NULL
が返されます。
この関数は とは異なり FromHandle
、一時オブジェクトを作成しません。
CWnd::get_accChild
指定された子の IDispatch
インターフェイスのアドレスを取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accChild(
VARIANT varChild,
IDispatch** ppdispChild);
パラメーター
varChild
インターフェイスを取得する IDispatch
子を識別します。
ppdispChild
子オブジェクトのインターフェイスのアドレスを IDispatch
受け取ります。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accChild
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ウィンドウなしのユーザー インターフェイス要素 (MFC が処理するウィンドウレス ActiveX コントロール以外) がある場合は、派生クラスで CWnd
この関数をオーバーライドします。
詳細については、Windows SDK の IAccessible::get_accChild
に関する記事を参照してください。
CWnd::get_accChildCount
このオブジェクトに属する子の数を取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accChildCount(long* pcountChildren);
パラメーター
pcountChildren
子の数を受け取ります。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accChildCount
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ウィンドウなしのユーザー インターフェイス要素 (MFC が処理するウィンドウレス ActiveX コントロール以外) がある場合は、派生クラスで CWnd
この関数をオーバーライドします。 基底クラスのバージョンを呼び出し、ウィンドウ化されていない子要素を追加します。
詳細については、Windows SDK の IAccessible::get_accChildCount
に関する記事を参照してください。
CWnd::get_accDefaultAction
オブジェクトの既定のアクションを記述する文字列を取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accDefaultAction(
VARIANT varChild,
BSTR* pszDefaultAction);
パラメーター
varChild
取得する既定のアクションがオブジェクトのアクションか、オブジェクトの子要素の 1 つであるかを指定します。 このパラメーターには CHILDID_SELF
、(オブジェクトに関する情報を取得するために) または子 ID (オブジェクトの子要素に関する情報を取得する) のいずれかを指定できます。
pszDefaultAction
指定したオブジェクトの既定の BSTR
アクションを説明するローカライズされた文字列を受け取る のアドレス。 NULL
このオブジェクトに既定のアクションがない場合は 。
戻り値
成功したS_OK、失敗した場合は COM エラー コードを返します。 「Windows SDK の IAccessible::get_accDefaultAction の戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
派生クラスでこの関数を CWnd
オーバーライドして、オブジェクトの既定のアクションを記述します。
詳細については、Windows SDK の IAccessible::get_accDefaultAction
に関する記事を参照してください。
CWnd::get_accDescription
指定されたオブジェクトの外観を記述する文字列を取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accDescription(
VARIANT varChild,
BSTR* pszDescription);
パラメーター
varChild
取得する説明がオブジェクトの説明か、オブジェクトの子要素の 1 つであるかを指定します。 このパラメーターには CHILDID_SELF
、(オブジェクトに関する情報を取得するために) または子 ID (オブジェクトの子要素に関する情報を取得する) のいずれかを指定できます。
pszDescription
BSTR
指定したオブジェクトを記述するローカライズされた文字列を受け取る のアドレス。NULL
このオブジェクトに対して説明が使用できない場合は 。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accDescription
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
派生クラスでこの関数を CWnd
オーバーライドして、オブジェクトを記述します。 基底クラスのバージョンを呼び出し、説明を追加します。
詳細については、Windows SDK の IAccessible::get_accDescription
に関する記事を参照してください。
CWnd::get_accFocus
キーボード フォーカスを保持するオブジェクトを取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accFocus(VARIANT* pvarChild);
パラメーター
pvarChild
フォーカスがあるオブジェクトに関する情報を受け取ります。 Windows SDK の IAccessible::get_accFocus
を参照してくださいpvarID
。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accFocus
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ウィンドウなしのユーザー インターフェイス要素 (MFC が処理するウィンドウレス ActiveX コントロール以外) がある場合は、派生クラスで CWnd
この関数をオーバーライドします。
詳細については、Windows SDK の IAccessible::get_accFocus
に関する記事を参照してください。
CWnd::get_accHelp
オブジェクトの Help プロパティ文字列を取得するためにフレームワークによって呼び出されます。
virtual HRESULT get_accHelp(
VARIANT varChild,
BSTR* pszHelp);
パラメーター
varChild
取得するヘルプ情報がオブジェクトのヘルプ情報か、オブジェクトの子要素の 1 つであるかを指定します。 このパラメーターには CHILDID_SELF
、(オブジェクトに関する情報を取得するために) または子 ID (オブジェクトの子要素に関する情報を取得する) のいずれかを指定できます。
pszHelp
指定したオブジェクトの BSTR
ヘルプ情報を含むローカライズされた文字列を受け取る のアドレス。 NULL
ヘルプ情報が使用できない場合は 。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accHelp
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
派生クラスでこの関数を CWnd
オーバーライドして、オブジェクトのヘルプ テキストを提供します。
詳細については、Windows SDK の IAccessible::get_accHelp
に関する記事を参照してください。
CWnd::get_accHelpTopic
フレームワークによって呼び出され、指定したオブジェクトに関連付けられている WinHelp ファイルの完全なパスと、そのファイル内の適切なトピックの識別子を取得します。
virtual HRESULT get_accHelpTopic(
BSTR* pszHelpFile,
VARIANT varChild,
long* pidTopic);
パラメーター
pszHelpFile
指定したオブジェクトに BSTR
関連付けられているファイルの完全パスを WinHelp
受け取る のアドレス (存在する場合)。
varChild
取得するヘルプ トピックがオブジェクトのトピックか、オブジェクトの子要素の 1 つであるかを指定します。 このパラメーターには CHILDID_SELF
、(オブジェクトのヘルプ トピックを取得する場合) または子 ID (オブジェクトの子要素の 1 つについてヘルプ トピックを取得する場合) のいずれかを指定できます。
pidTopic
指定したオブジェクトに関連付けられているヘルプ ファイル トピックを識別します。 Windows SDK の IAccessible::get_accHelpTopic
を参照してくださいpidTopic
。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accHelpTopic
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
派生クラスでこの関数を CWnd
オーバーライドして、オブジェクトに関するヘルプ情報を提供します。
詳細については、Windows SDK の IAccessible::get_accHelpTopic
に関する記事を参照してください。
CWnd::get_accKeyboardShortcut
指定されたオブジェクトのショートカット キーまたはアクセス キーを取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accKeyboardShortcut(
VARIANT varChild,
BSTR* pszKeyboardShortcut);
パラメーター
varChild
取得するキーボード ショートカットがオブジェクトのショートカット キーか、オブジェクトの子要素の 1 つであるかを指定します。 このパラメーターには CHILDID_SELF
、(オブジェクトに関する情報を取得するために) または子 ID (オブジェクトの子要素に関する情報を取得する) のいずれかを指定できます。
pszKeyboardShortcut
BSTR
キーボード ショートカットを識別するローカライズされた文字列を受け取る のアドレス。指定NULL
したオブジェクトにキーボード ショートカットが関連付けられていない場合は 。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accKeyboardShortcut
「戻り値」を参照してください。
注釈
この関数は、MFC のサポートの Active Accessibility
一部です。
派生クラスでこの関数を CWnd
オーバーライドして、オブジェクトのキーボード ショートカットを識別します。
詳細については、Windows SDK の IAccessible::get_accKeyboardShortcut
に関する記事を参照してください。
CWnd::get_accName
指定されたオブジェクトの名前を取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accName(
VARIANT varChild,
BSTR* pszName);
パラメーター
varChild
取得する名前がオブジェクトの名前か、オブジェクトの子要素のいずれかであるかを指定します。 このパラメーターには CHILDID_SELF
、(オブジェクトに関する情報を取得するために) または子 ID (オブジェクトの子要素に関する情報を取得する) のいずれかを指定できます。
pszName
指定したオブジェクトの BSTR
名前を含む文字列を受け取る のアドレス。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accName
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
派生クラスでこの関数を CWnd
オーバーライドして、オブジェクトの名前を返します。
詳細については、Windows SDK の IAccessible::get_accName
に関する記事を参照してください。
CWnd::get_accParent
オブジェクトの親の IDispatch
インターフェイスを取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accParent(IDispatch** ppdispParent);
パラメーター
ppdispParent
親オブジェクトのインターフェイスのアドレスを IDispatch
受け取ります。 親が存在しない場合、または子がその親にアクセスできない場合、変数は に NULL
設定されます。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM
エラー コードを返します。 Windows SDK のIAccessible::get_accParent
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ほとんどの場合、この関数をオーバーライドする必要はありません。
詳細については、Windows SDK の IAccessible::get_accParent
に関する記事を参照してください。
CWnd::get_accRole
指定されたオブジェクトの役割を記述する情報を取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accRole(
VARIANT varChild,
VARIANT* pvarRole);
パラメーター
varChild
取得するロール情報がオブジェクトの情報か、オブジェクトの子要素の 1 つであるかを指定します。 このパラメーターには CHILDID_SELF
、(オブジェクトに関する情報を取得するために) または子 ID (オブジェクトの子要素に関する情報を取得する) のいずれかを指定できます。
pvarRole
ロール情報を受け取ります。 Windows SDK の IAccessible::get_accRole
を参照してくださいpvarRole
。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accRole
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ウィンドウなしのユーザー インターフェイス要素 (MFC が処理するウィンドウレス ActiveX コントロール以外) がある場合は、派生クラスで CWnd
この関数をオーバーライドします。
詳細については、Windows SDK の IAccessible::get_accRole
に関する記事を参照してください。
CWnd::get_accSelection
このオブジェクトの選択されている子を取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accSelection(VARIANT* pvarChildren);
パラメーター
pvarChildren
選択されている子に関する情報を受け取ります。 Windows SDK の IAccessible::get_accSelection
を参照してくださいpvarChildren
。
戻り値
成功したS_OK、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accSelection
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ウィンドウなしのユーザー インターフェイス要素 (MFC が処理するウィンドウレス ActiveX コントロール以外) がある場合は、派生クラスで CWnd
この関数をオーバーライドします。
詳細については、Windows SDK の IAccessible::get_accSelection
に関する記事を参照してください。
CWnd::get_accState
指定されたオブジェクトの現在の状態を取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accState(
VARIANT varChild,
VARIANT* pvarState);
パラメーター
varChild
取得する状態情報がオブジェクトの状態情報か、オブジェクトの子要素の 1 つであるかを指定します。 このパラメーターには CHILDID_SELF
、(オブジェクトに関する情報を取得するために) または子 ID (オブジェクトの子要素に関する情報を取得する) のいずれかを指定できます。
pvarState
オブジェクトの状態に関する情報を受信します。 Windows SDK の IAccessible::get_accState
を参照してくださいpvarState
。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accState
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ウィンドウなしのユーザー インターフェイス要素 (MFC が処理するウィンドウレス ActiveX コントロール以外) がある場合は、派生クラスで CWnd
この関数をオーバーライドします。
詳細については、Windows SDK の IAccessible::get_accState
に関する記事を参照してください。
CWnd::get_accValue
指定されたオブジェクトの値を取得するために、フレームワークによって呼び出されます。
virtual HRESULT get_accValue(
VARIANT varChild,
BSTR* pszValue);
パラメーター
varChild
取得する値情報がオブジェクトの情報か、オブジェクトの子要素の 1 つであるかを指定します。 このパラメーターには CHILDID_SELF
、(オブジェクトに関する情報を取得するために) または子 ID (オブジェクトの子要素に関する情報を取得する) のいずれかを指定できます。
pszValue
オブジェクトの現在の BSTR
値を含むローカライズされた文字列を受け取る のアドレス。
戻り値
成功した場合は S_OK
を返し、失敗した場合は COM エラー コードを返します。 Windows SDK のIAccessible::get_accValue
「戻り値」を参照してください。
注釈
この関数は、MFC の Active Accessibility サポートの一部です。
ウィンドウなしのユーザー インターフェイス要素 (MFC が処理するウィンドウレス ActiveX コントロール以外) がある場合は、派生クラスで CWnd
この関数をオーバーライドします。
詳細については、Windows SDK の IAccessible::get_accValue
に関する記事を参照してください。
CWnd::GetActiveWindow
アクティブ ウィンドウへのポインターを取得します。
static CWnd* PASCAL GetActiveWindow();
戻り値
アクティブなウィンドウ、または NULL
呼び出し時にアクティブなウィンドウがない場合。 ポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
アクティブ ウィンドウは、現在の入力フォーカスを持つウィンドウか、メンバー関数によって SetActiveWindow
明示的にアクティブになっているウィンドウです。
CWnd::GetAncestor
指定したウィンドウの祖先ウィンドウ オブジェクトを取得します。
CWnd* GetAncestor(UINT gaFlags) const;
パラメーター
gaFlags
取得する先祖を指定します。 使用可能な値の完全な一覧については、「」を参照してください GetAncestor
。
戻り値
関数が成功した場合、戻り値は先祖ウィンドウ オブジェクトへのポインターです。 関数が失敗した場合、戻り値は です NULL
。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 GetAncestor
の機能をエミュレートします。
CWnd::GetCapture
マウス キャプチャがあるウィンドウを取得します。
static CWnd* PASCAL GetCapture();
戻り値
マウス キャプチャがあるウィンドウを識別します。 これは、 NULL
ウィンドウにマウス キャプチャがない場合です。
戻り値は一時的な場合があり、後で使用するために格納しないでください。
注釈
特定の時点でマウス キャプチャを行うウィンドウは 1 つだけです。 メンバー関数が呼び出されると、ウィンドウはマウス キャプチャを SetCapture
受け取ります。 このウィンドウは、カーソルが境界線内にあるかどうかに関係なく、マウス入力を受け取ります。
CWnd::GetCaretPos
キャレットの現在位置のクライアント座標を取得し、 として CPoint
返します。
static CPoint PASCAL GetCaretPos();
戻り値
CPoint
キャレットの位置の座標を含む オブジェクト。
注釈
キャレットの位置は、ウィンドウのクライアント座標で CWnd
指定されます。
CWnd::GetCheckedRadioButton
指定したグループ内の現在チェックされているラジオ ボタンの ID を取得します。
int GetCheckedRadioButton(
int nIDFirstButton,
int nIDLastButton);
パラメーター
nIDFirstButton
グループ内の最初のラジオ ボタンの整数識別子を指定します。
nIDLastButton
グループ内の最後のラジオ ボタンの整数識別子を指定します。
戻り値
チェックされたラジオ ボタンの ID、または何も選択されていない場合は 0。
CWnd::GetClientRect
クライアント領域のクライアント座標を、 CWnd
が lpRect
指す構造体にコピーします。
void GetClientRect(LPRECT lpRect) const;
パラメーター
lpRect
クライアント座標をRECT
受け取る構造体またはCRect
オブジェクトを指します。 left
メンバーと top
メンバーは 0 になります。 right
メンバーと bottom
メンバーには、ウィンドウの幅と高さが含まれます。
注釈
クライアント座標は、クライアント領域の左上隅と右下隅を指定します。 クライアント座標はクライアント領域の左上隅 CWnd
を基準とするため、左上隅の座標は (0,0) になります。
例
CWnd::IsIconic
の例を参照してください。
CWnd::GetClipboardOwner
クリップボードの現在の所有者を取得します。
static CWnd* PASCAL GetClipboardOwner();
戻り値
関数が成功した場合にクリップボードを所有するウィンドウを識別します。 それ以外の場合は、NULL
となります。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
クリップボードには、現在所有されていない場合でもデータを含めることができます。
CWnd::GetClipboardViewer
クリップボード ビューアー チェーンの最初のウィンドウを取得します。
static CWnd* PASCAL GetClipboardViewer();
戻り値
成功した場合にクリップボードの表示を現在担当しているウィンドウを識別します。それ以外の場合 NULL
(ビューアーがない場合など)。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
CWnd::GetControlUnknown
不明な OLE コントロールへのポインターを取得するには、このメンバー関数を呼び出します。
LPUNKNOWN GetControlUnknown();
戻り値
このCWnd
オブジェクトによってIUnknown
表される OLE コントロールのインターフェイスへのポインター。 このオブジェクトが OLE コントロールを表さない場合、戻り値は です NULL
。
注釈
この IUnknown
ポインターは解放しないでください。 通常は、 を使用してコントロールの特定のインターフェイスを取得します。
によって GetControlUnknown
返されるインターフェイス ポインターは参照カウントされません。 以前にポインターを呼び出していない限り、ポインターで を呼び出IUnknown::Release
IUnknown::AddRef
さないでください。
例
// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is a CDialog-derived class.
// IDC_MSACALCTRL1 is the ID of the Calendar control OCX embedded
// on this dialog
CWnd *pWndCal = GetDlgItem(IDC_MSACALCTRL1);
// Use the IUnknown of the control
LPUNKNOWN pUnk = pWndCal->GetControlUnknown();
// From there get the IDispatch interface of control
LPDISPATCH pDisp = NULL;
pUnk->QueryInterface(IID_IDispatch, (LPVOID*)&pDisp);
// use IDispatch method to invoke the control's functionality
CWnd::GetCurrentMessage
ウィンドウが現在処理しているメッセージへのポインターを返します。 OnMessage メッセージ ハンドラー メンバー関数の場合にのみ呼び出す必要があります。
static const MSG* PASCAL GetCurrentMessage();
戻り値
ウィンドウが現在処理しているメッセージを MSG
含む構造体へのポインターを返します。 OnMessage ハンドラー内でのみ呼び出す必要があります。
例
CMDIFrameWnd::MDICascade
の例を参照してください。
CWnd::GetDC
に指定されたクラス スタイルに応じて、クライアント領域の共通、クラス、またはプライベート デバイス コンテキストへのポインターを CWnd
取得します。
CDC* GetDC();
戻り値
成功した場合はクライアント領域のデバイス コンテキストを CWnd
識別します。それ以外の場合、戻り値は です NULL
。 ポインターは一時的なものであり、後で使用するために格納しないでください。
注釈
一般的なデバイス コンテキストの場合は、 GetDC
取得されるたびに既定の属性をコンテキストに割り当てます。 クラスとプライベート コンテキストの場合、 GetDC
以前に割り当てられた属性は変更されません。 デバイス コンテキストは、後続のグラフィックス デバイス インターフェイス (GDI) 関数で使用して、クライアント領域に描画できます。
デバイス コンテキストがウィンドウ クラスに属していない限り、描画後にコンテキストを ReleaseDC
解放するには、メンバー関数を呼び出す必要があります。
クラスにCWnd
属するデバイス コンテキストは、クラスの登録時にGetDC
、、または CS_PARENTDC
が構造体のWNDCLASS
スタイルとして指定されている場合CS_CLASSDC
CS_OWNDC
、メンバー関数によって返されます。
CWnd::GetDCEx
ウィンドウのデバイス コンテキストのハンドルを CWnd
取得します。
CDC* GetDCEx(
CRgn* prgnClip,
DWORD flags);
パラメーター
prgnClip
クライアント ウィンドウの表示領域と組み合わせることができるクリッピング領域を識別します。
flags
次のいずれかのプリセット値を設定できます。
DCX_CACHE
またはCLASSDC
ウィンドウではなく、キャッシュからデバイス コンテキストをOWNDC
返します。CS_OWNDC
とCS_CLASSDC
がオーバーライドされます。DCX_CLIPCHILDREN
ウィンドウの下にあるすべての子ウィンドウの表示領域をCWnd
除外します。DCX_CLIPSIBLINGS
ウィンドウの上にあるすべての兄弟ウィンドウの表示領域をCWnd
除外します。DCX_EXCLUDERGN
によってprgnClip
識別されるクリッピング領域を、返されるデバイス コンテキストの可視領域から除外します。DCX_INTERSECTRGN
返されるデバイス コンテキストの可視領域内で によってprgnClip
識別されるクリッピング領域と交差します。DCX_LOCKWINDOWUPDATE
このウィンドウを除外するLockWindowUpdate
呼び出しが有効な場合でも描画を許可します。 この値は、追跡中の描画に使用されます。DCX_PARENTCLIP
親ウィンドウの可視領域を使用し、親ウィンドウのWS_CLIPCHILDREN
ビットとWS_PARENTDC
スタイル ビットを無視します。 この値は、デバイス コンテキストの配信元をウィンドウの左上隅にCWnd
設定します。DCX_WINDOW
クライアントの四角形ではなく、ウィンドウの四角形に対応するデバイス コンテキストを返します。
戻り値
関数が成功した場合の、指定されたウィンドウのデバイス コンテキスト。それ以外の場合 NULL
は 。
注釈
デバイス コンテキストは、後続の GDI 関数でクライアント領域に描画するために使用できます。
この関数は、関数の GetDC
拡張機能であり、ウィンドウのデバイス コンテキストをクリップする方法と方法をより細かく制御できます。
デバイス コンテキストがウィンドウ クラスに属していない限り、描画後にコンテキストを ReleaseDC
解放するには、 関数を呼び出す必要があります。 一般的なデバイス コンテキストは 5 つしか使用できないため、デバイス コンテキストを解放できないと、他のアプリケーションがデバイス コンテキストにアクセスできなくなる可能性があります。
キャッシュされたデバイス コンテキストを取得するには、アプリケーションで を指定 DCX_CACHE
する必要があります。 DCX_CACHEが指定されておらず、ウィンドウが でもないCS_OWNDC
CS_CLASSDC
場合、この関数は を返しますNULL
。
特殊な特性を持つデバイス コンテキストは、クラスの登録時に GetDCEx
構造体で WNDCLASS
、CS_OWNDC
、または CS_PARENTDC
スタイルが指定された場合CS_CLASSDC
に、関数によって返されます。
これらの特性の詳細については、Windows SDK の構造の WNDCLASS
説明を参照してください。
CWnd::GetDCRenderTarget
CWnd
ウィンドウのデバイス コンテキスト (DC) レンダー ターゲットを取得します。
CDCRenderTarget* GetDCRenderTarget();
戻り値
関数が成功した場合、指定したウィンドウのデバイス コンテキスト レンダー ターゲット。それ以外の場合 NULL
は 。
注釈
CWnd::GetDescendantWindow
このメンバー関数を呼び出して、指定された ID で指定された子孫ウィンドウを検索します。
CWnd* GetDescendantWindow(
int nID,
BOOL bOnlyPerm = FALSE) const;
パラメーター
nID
取得するコントロールまたは子ウィンドウの識別子を指定します。
bOnlyPerm
返されるウィンドウを一時的にできるかどうかを指定します。 の場合 TRUE
は、永続的なウィンドウのみを返すことができます。の場合 FALSE
、関数は一時ウィンドウを返すことができます。 一時的なウィンドウの詳細については、「 テクニカル ノート 3」を参照してください。
戻り値
オブジェクトへの CWnd
ポインター。子 NULL
ウィンドウが見つからない場合は 。
注釈
このメンバー関数は、直接の子であるウィンドウだけでなく、子ウィンドウのツリー全体を検索します。
CWnd::GetDesktopWindow
Windows デスクトップ ウィンドウを返します。
static CWnd* PASCAL GetDesktopWindow();
戻り値
Windows デスクトップ ウィンドウを識別します。 このポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
デスクトップ ウィンドウは画面全体をカバーし、すべてのアイコンとその他のウィンドウが塗りつぶされる領域です。
CWnd::GetDlgCtrlID
ダイアログ ボックス内のコントロールの値だけでなく、任意の子ウィンドウのウィンドウまたはコントロール ID の値を返します。
int GetDlgCtrlID() const;
戻り値
関数が成功した場合は CWnd
子ウィンドウの数値識別子。それ以外の場合は 0。
注釈
最上位のウィンドウには ID 値がないため、 が最上位ウィンドウの場合 CWnd
、この関数の戻り値は無効です。
例
CWnd::OnCtlColor
の例を参照してください。
CWnd::GetDlgItem
ダイアログ ボックスまたはその他のウィンドウで、指定したコントロールまたは子ウィンドウへのポインターを取得します。
CWnd* GetDlgItem(int nID) const;
void GetDlgItem(
int nID,
HWND* phWnd) const;
パラメーター
nID
取得するコントロールまたは子ウィンドウの識別子を指定します。
phWnd
子ウィンドウへのポインター。
戻り値
指定されたコントロールまたは子ウィンドウへのポインター。 パラメーターによって nID
指定された整数 ID を持つコントロールが存在しない場合、値は になります NULL
。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
返されるポインターは、通常、 によって nID
識別されるコントロールの型にキャストされます。
例
// uses GetDlgItem to return a pointer to a user interface control
CEdit *pBoxOne;
pBoxOne = (CEdit*)GetDlgItem(IDC_MYEDIT);
GotoDlgCtrl(pBoxOne);
CWnd::GetDlgItemInt
によって nID
識別されるコントロールのテキストを取得します。
UINT GetDlgItemInt(
int nID,
BOOL* lpTrans = NULL,
BOOL bSigned = TRUE) const;
パラメーター
nID
変換するダイアログ ボックス コントロールの整数識別子を指定します。
lpTrans
変換されたフラグを受け取るブール型 (Boolean) の変数を指します。
bSigned
取得する値に署名するかどうかを指定します。
戻り値
ダイアログ ボックスの項目テキストの変換された値を指定します。 0 は有効な戻り値であるため、 lpTrans
エラーを検出するには を使用する必要があります。 符号付き戻り値が必要な場合は、型として int
キャストします。
変換された数値が (符号付き数値の場合) または UINT_MAX
(符号なしの場合) よりINT_MAX
大きい場合、関数は 0 を返します。
数値以外の文字が発生し、上記の最大値を超えるなどのエラーが発生すると、 GetDlgItemInt
によって lpTrans
指される場所に 0 がコピーされます。 エラーがない場合は、 lpTrans
0 以外の値を受け取ります。 が のNULL
GetDlgItemInt
場合lpTrans
、エラーに関する警告は表示されません。
注釈
指定されたダイアログ ボックス内の指定されたコントロールのテキストを整数値に変換します。その場合、テキストの先頭に余分なスペースを取り除き、10 進数を変換します。 テキストの末尾に達するか、数値以外の文字を検出すると、翻訳が停止します。
が のGetDlgItemInt
場合bSigned
はTRUE
、テキストの先頭でマイナス記号 (-) をチェックし、テキストを符号付き数値に変換します。 それ以外の場合は、符号なし値が作成されます。
コントロールに WM_GETTEXT
メッセージを送信します。
CWnd::GetDlgItemText
ダイアログ ボックスでコントロールに関連付けられているタイトルまたはテキストを取得するには、このメンバー関数を呼び出します。
int GetDlgItemText(
int nID,
LPTSTR lpStr,
int nMaxCount) const;
int GetDlgItemText(
int nID,
CString& rString) const;
パラメーター
nID
タイトルを取得するコントロールの整数識別子を指定します。
lpStr
コントロールのタイトルまたはテキストを受け取るバッファーを指します。
nMaxCount
にコピーする文字列の最大長 (文字数) を lpStr
指定します。 文字列が より nMaxCount
長い場合は、切り捨てられます。
rString
CString
への参照。
戻り値
バッファーにコピーされる実際の文字数を指定します。終端の null 文字は含まれません。 テキストがコピーされない場合、値は 0 です。
注釈
メンバー関数は GetDlgItemText
、 が指す場所にテキストを lpStr
コピーし、コピーするバイト数を返します。
CWnd::GetDSCCursor
このメンバー関数を呼び出して、データ ソース コントロールの 、UserName
Password
および SQL プロパティによってDataSource
定義されている基になるカーソルへのポインターを取得します。
IUnknown* GetDSCCursor();
戻り値
データ ソース コントロールによって定義されるカーソルへのポインター。 MFC はポインターの呼び出し AddRef
を処理します。
注釈
返されたポインターを使用して、データ バインド グリッド コントロールなどの複雑なデータ バインド コントロールのプロパティを設定 ICursor
します。 データ ソース コントロールは、最初にバインドされたコントロールがカーソルを要求するまでアクティブになりません。 これは、MFC バインディング マネージャーへの呼び出し GetDSCCursor
によって明示的に発生するか、MFC バインド マネージャーによって暗黙的に発生する可能性があります。 どちらの場合も、 を呼び出し、返された ポインターで を呼び出GetDSCCursor
Release
すことで、データ ソースコントロールを強制的にIUnknown
アクティブにすることができます。 アクティブ化すると、データ ソース コントロールは基になるデータ ソースへの接続を試みます。 返されるポインターは、次のコンテキストで使用できます。
例
BOOL CMyDlg::OnInitDialog()
{
// Find the child controls on the dialog
HRESULT hr = E_FAIL;
CWnd *pDSC = GetDlgItem(IDC_DATASOURCE);
CWnd *pListWnd = GetDlgItem(IDC_DBLIST1);
IUnknown *punkList = pListWnd->GetControlUnknown();
IDBList *pList = NULL;
if (NULL != punkList)
{
hr = punkList->QueryInterface(__uuidof(IDBList), (void **)&pList);
}
if (SUCCEEDED(hr))
{
// Tell the MFC binding manager that we are
// binding DISPID 3 to the data-source control.
pListWnd->BindProperty(0x3, pDSC);
// Tell the listbox which field to expose as its bound column
pList->put_BoundColumn(_T("ContactFirstName"));
// Tell the listbox which cursor and column to populate its list from
pList->put_ListField(_T("ContactFirstName"));
IUnknown *punkCursor = pDSC->GetDSCCursor();
if (NULL != punkCursor)
{
punkCursor->Release();
}
pList->Release();
return TRUE;
}
CWnd::GetDynamicLayout
動的レイアウト マネージャー オブジェクトへのポインターを取得します。
CMFCDynamicLayout* GetDynamicLayout();
戻り値
動的レイアウト マネージャー オブジェクトへのポインター。または NULL
動的レイアウトが有効になっていない場合は 。
注釈
ウィンドウ オブジェクトは、返されたポインターを所有し、その有効期間を管理します。そのため、ポインターはオブジェクトへのアクセスにのみ使用する必要があります。ポインターを削除したり、ポインターを永続的に格納したりしないでください。
CWnd::GetExStyle
ウィンドウの拡張スタイルを返します。
DWORD GetExStyle() const;
戻り値
ウィンドウの拡張スタイル。 MFC で使用される拡張ウィンドウ スタイルの詳細については、「 拡張ウィンドウ スタイル」を参照してください。
CWnd::GetFocus
現在入力フォーカスがある への CWnd
ポインターを取得します。
static CWnd* PASCAL GetFocus();
戻り値
現在のフォーカスがあるウィンドウへのポインター。フォーカス NULL
ウィンドウがない場合は 。
ポインターは一時的なものであり、後で使用するために格納しないでください。
CWnd::GetFont
メッセージを WM_GETFONT
ウィンドウに送信して、現在のフォントを取得します。
CFont* GetFont() const;
戻り値
ウィンドウの現在の CFont
フォントにアタッチされているオブジェクトへのポインター。
注釈
ウィンドウがメッセージを処理しない限り、このメソッドは WM_GETFONT
無効です。 メッセージのメッセージ ハンドラーWM_GETFONT
を含む定義済みのウィンドウ クラスにアタッチされているため、このメッセージの処理からCWnd
派生する多くの MFC クラス。 このメソッドを使用するには、派生元 CWnd
のクラスでメッセージのメソッド ハンドラーを定義する WM_GETFONT
必要があります。
CWnd::GetForegroundWindow
フォアグラウンド ウィンドウ (ユーザーが現在作業しているウィンドウ) へのポインターを返します。
static CWnd* PASCAL GetForegroundWindow();
戻り値
フォアグラウンド ウィンドウへのポインター。 これは一時的 CWnd
なオブジェクトである可能性があります。
注釈
フォアグラウンド ウィンドウは、最上位のウィンドウ (フレーム ウィンドウまたはダイアログ ボックス) にのみ適用されます。
CWnd::GetIcon
このメンバー関数を呼び出して、大きな (32 x 32) または 小さい (16x16) アイコンへのハンドルを取得します (で bBigIcon
示されます)。
HICON GetIcon(BOOL bBigIcon) const;
パラメーター
bBigIcon
の場合は、32 ピクセル x 32 ピクセルのアイコンを指定します。の場合TRUE
FALSE
は、16 ピクセル x 16 ピクセルのアイコンを指定します。
戻り値
アイコンにへのハンドル。 失敗した場合、 は を返します NULL
。
CWnd::GetLastActivePopup
CWnd
が所有するポップアップ ウィンドウのうち、直前にアクティブだったウィンドウを調べます。
CWnd* GetLastActivePopup() const;
戻り値
最後にアクティブなポップアップ ウィンドウを識別します。 次のいずれかの条件が満たされた場合、戻り値はウィンドウ自体になります。
ウィンドウ自体が最後にアクティブになりました。
ウィンドウはポップアップ ウィンドウを所有していません。
ウィンドウが最上位のウィンドウではないか、別のウィンドウが所有しています。
ポインターは一時的なものであり、後で使用するために格納しないでください。
例
CWnd::FindWindow
の例を参照してください。
CWnd::GetLayeredWindowAttributes
レイヤード ウィンドウの不透明度および透明度のカラー キーを取得します。
BOOL GetLayeredWindowAttributes(
COLORREF* pcrKey,
BYTE* pbAlpha,
DWORD* pdwFlags) const;
パラメーター
pcrKey
レイヤード ウィンドウの COLORREF
作成時に使用する透明度の色キーを受け取る値へのポインター。 この色のウィンドウによって塗りつぶされたすべてのピクセルは透明になります。 これは、引数が必要ない場合に指定できます NULL
。
pbAlpha
BYTE
レイヤーウィンドウの不透明度を表すために使用されるアルファ値を受け取る へのポインター。 によって pbAlpha
参照される変数が 0 の場合、ウィンドウは完全に透明になります。 によって pbAlpha
参照される変数が 255 の場合、ウィンドウは不透明になります。 これは、引数が必要ない場合に指定できます NULL
。
pdwFlags
レイヤー フラグを DWORD
受け取る へのポインター。 これは、引数が必要ない場合に指定できます NULL
。 使用可能な値の完全な一覧については、「 GetLayeredWindowAttributes」を参照してください。
戻り値
関数が正常終了した場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 GetLayeredWindowAttributes
の機能をエミュレートします。
CWnd::GetMenu
このウィンドウのメニューへのポインターを取得します。
CMenu* GetMenu() const;
戻り値
メニューを識別します。 値は、 に NULL
メニューがない場合 CWnd
です。 が子ウィンドウの場合 CWnd
、戻り値は未定義です。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
子ウィンドウにはメニューがないため、この関数は使用しないでください。
例
void CMainFrame::OnCwndDeletefilemenu()
{
// This example deletes the leftmost popup menu or leftmost
// popup menu item from the application's main window.
CWnd *pMain = AfxGetMainWnd();
// The main window _can_ be NULL, so this code
// doesn't ASSERT and actually tests.
if (pMain != NULL)
{
// Get the main window's menu
CMenu *pMenu = pMain->GetMenu();
// If there is a menu and it has items, we'll
// delete the first one.
if (pMenu != NULL && pMenu->GetMenuItemCount() > 0)
{
pMenu->DeleteMenu(0, MF_BYPOSITION);
// force a redraw of the menu bar
pMain->DrawMenuBar();
}
// No need to delete pMenu because it is an MFC
// temporary object.
}
}
CWnd::GetMenuBarInfo
指定したメニュー バーに関する情報を取得します。
BOOL GetMenuBarInfo(
LONG idObject,
LONG idItem,
PMENUBARINFO pmbi) const;
パラメーター
idObject
メニュー オブジェクトを指定します。 有効な値の一覧については、「GetMenuBarInfo
」を参照してください。
idItem
情報を取得する項目を指定します。 このパラメーターが 0 の場合、関数はメニュー自体に関する情報を取得します。 このパラメーターが 1 の場合、関数はメニューの最初の項目に関する情報を取得します。
pmbi
情報を MENUBARINFO
受け取る構造体へのポインター。
戻り値
関数が正常終了した場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 GetMenuBarInfo
の機能をエミュレートします。
CWnd::GetNextDlgGroupItem
ダイアログ ボックス内のコントロールのグループ内で、前または次のコントロールを検索します。
CWnd* GetNextDlgGroupItem(
CWnd* pWndCtl,
BOOL bPrevious = FALSE) const;
COleControlSiteOrWnd* GetNextDlgGroupItem(
COleControlSiteOrWnd* pCurSiteOrWnd = NULL) const;
パラメーター
pWndCtl
検索の開始点として使用するコントロールを識別します。
bPrevious
ダイアログ ボックスでコントロールのグループを検索する関数の方法を指定します。 の場合 TRUE
、関数はグループ内の前のコントロールを検索します。の場合 FALSE
は、グループ内の次のコントロールを検索します。
pCurSiteOrWnd
コントロールを識別します COleControlSiteOrWnd
。 の詳細については COleControlSiteOrWnd
、「 解説」を参照してください。
戻り値
メンバー関数が成功した場合は、グループ内の前または次のコントロールへのポインター。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
コントロールのグループは、スタイルで作成されたコントロールで WS_GROUP
始まり、スタイルで作成されていない最後のコントロールで WS_GROUP
終わります。
既定では、メンバー関数は GetNextDlgGroupItem
グループ内の次のコントロールへのポインターを返します。 グループ内の最初のコントロールを識別し、 bPrevious
が のGetNextDlgGroupItem
場合pWndCtl
はTRUE
、グループ内の最後のコントロールへのポインターを返します。
注意
MFC はウィンドウレス ActiveX コントロール、標準の ActiveX コントロール、およびウィンドウをサポートしているため、コントロール HWND
を参照するだけでは十分ではなくなりました。 オブジェクトには COleControlSiteOrWnd
、次のように、ウィンドウ化された ActiveX コントロール、ウィンドウなしの ActiveX コントロール、またはウィンドウとしてオブジェクトを識別する情報が含まれます。
コントロールまたはウィンドウの種類 | 情報の識別 |
---|---|
ウィンドウ化された ActiveX コントロール | COleControlSiteHWND オブジェクトを格納し、それに関連付けます。 m_hWnd のCOleControlSiteOrWnd メンバーは コントロールの にHWND 設定され、メンバーはm_pSite コントロールの COleControlSite を指します。 |
ウィンドウレス ActiveX コントロール | が含まれています。HWND のメンバーは m_pSite コントロールの COleControlSite を指し、m_hWnd メンバーは ですNULL 。COleControlSiteOrWnd |
標準ウィンドウ | は、 のみを HWND 含みます。 のメンバーはm_hWnd ウィンドウの HWND に設定されm_pSite 、メンバーは ですNULL 。COleControlSiteOrWnd |
CWnd::GetNextDlgTabItem
スタイルを使用して作成され、指定したコントロールの前または後に WS_TABSTOP
作成された最初のコントロールへのポインターを取得します。
CWnd* GetNextDlgTabItem(
CWnd* pWndCtl,
BOOL bPrevious = FALSE) const;
COleControlSiteOrWnd* GetNextDlgTabItem(
COleControlSiteOrWnd* pCurSiteOrWnd,
BOOL bPrevious) const;
パラメーター
pWndCtl
検索の開始点として使用するコントロールを識別します。
pCurSiteOrWnd
コントロールを識別します COleControlSiteOrWnd
。 COleControlSiteOrWnd
の詳細については、「CWnd::GetNextDlgGroupItem
」を参照してください。
bPrevious
関数がダイアログ ボックスを検索する方法を指定します。 の場合 TRUE
、関数はダイアログ ボックスで前のコントロールを検索します。の場合 FALSE
は、次のコントロールを検索します。
戻り値
メンバー関数が成功した場合は、スタイルを WS_TABSTOP
持つ前または次のコントロールへのポインター。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
COleControlSiteOrWnd
の詳細については、「CWnd::GetNextDlgGroupItem
」を参照してください。
CWnd::GetNextWindow
ウィンドウ マネージャーの一覧で次の (または前の) ウィンドウを検索します。
CWnd* GetNextWindow(UINT nFlag = GW_HWNDNEXT) const;
パラメーター
nFlag
関数が次のウィンドウまたは前のウィンドウへのポインターを返すかどうかを指定します。 は、 GW_HWNDNEXT
ウィンドウ マネージャーのリストのオブジェクトの後にあるウィンドウを CWnd
返す か、 GW_HWNDPREV
ウィンドウ マネージャーのリストの前のウィンドウを返す のいずれかです。
戻り値
メンバー関数が成功した場合に、ウィンドウ マネージャーの一覧の次の (または前の) ウィンドウを識別します。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
ウィンドウ マネージャーの一覧には、すべての最上位ウィンドウ、関連する子ウィンドウ、および任意の子ウィンドウの子ウィンドウのエントリが含まれています。
がトップレベル ウィンドウの場合 CWnd
、関数は次の (または前の) 最上位ウィンドウを検索します。が子ウィンドウの場合 CWnd
、関数は次の (または前の) 子ウィンドウを検索します。
CWnd::GetOleControlSite
指定された ActiveX コントロールのカスタム サイトを取得します。
COleControlSite* GetOleControlSite(UINT idControl) const;
パラメーター
idControl
ActiveX コントロールの ID。
CWnd::GetOpenClipboardWindow
クリップボードが現在開いているウィンドウのハンドルを取得します。
static CWnd* PASCAL GetOpenClipboardWindow();
戻り値
関数が成功した場合にクリップボードが開いているウィンドウのハンドル。それ以外の場合 NULL
は 。
CWnd::GetOwner
ウィンドウの所有者へのポインターを取得します。
CWnd* GetOwner() const;
戻り値
CWnd
オブジェクトを指すポインターです。
解説
ウィンドウに所有者がない場合は、親ウィンドウ オブジェクトへのポインターが既定で返されます。 所有者と所有側の関係は、いくつかの重要な側面で親子の側面と異なっています。 たとえば、親を持つウィンドウは、その親ウィンドウのクライアント領域に限定されます。 所有されているウィンドウは、デスクトップ上の任意の場所に描画できます。
この関数の所有権の概念は、 の所有権の GetWindow
概念とは異なります。
CWnd::GetParent
子ウィンドウの親ウィンドウへのポインターを取得するには、この関数を呼び出します (存在する場合)。
CWnd* GetParent() const;
戻り値
Windows SDK の「戻り値」セクション GetParent
を参照してください。
注釈
関数は GetParent
、直接の親へのポインターを返します (存在する場合)。 これに対し GetParentOwner
、関数は、子ウィンドウではない (スタイルを持たない) 最も直接的な親ウィンドウまたは所有者ウィンドウへのポインターを WS_CHILD
返します。 子 GetParent
ウィンドウ内に子ウィンドウがあり、別の結果を GetParentOwner
返す場合。
CWnd::GetParentFrame
このメンバー関数を呼び出して、親フレーム ウィンドウを取得します。
CFrameWnd* GetParentFrame() const;
戻り値
成功した場合はフレーム ウィンドウへのポインター。それ以外の場合 NULL
は 。
注釈
メンバー関数は、 (または派生クラス) オブジェクトが見つかるまで親チェーンを CFrameWnd
検索します。
CWnd::GetParentOwner
子ウィンドウの親ウィンドウまたは所有者ウィンドウへのポインターを取得するには、このメンバー関数を呼び出します。
CWnd* GetParentOwner() const;
戻り値
CWnd
オブジェクトを指すポインターです。 オブジェクトが CWnd
ハンドルにアタッチされていない場合は、一時 CWnd
オブジェクトが作成されてアタッチされます。 ポインターは一時的なものであり、後で使用するために格納しないでください。
注釈
GetParentOwner
は、子ウィンドウではない (スタイルを持たない) 最も直接的な親ウィンドウまたは所有者ウィンドウへのポインターを WS_CHILD
返します。 現在の所有者ウィンドウは、 で SetOwner
設定できます。 既定では、ウィンドウの親はその所有者です。
これに対し、関数は GetParent
、子ウィンドウかどうかに関係なく、直接の親へのポインターを返します。 子 GetParent
ウィンドウ内に子ウィンドウがあり、別の結果を GetParentOwner
返す場合。
CWnd::GetProperty
このメンバー関数を呼び出して、 で指定された ActiveX コントロール プロパティを dwDispID
取得します。
void GetProperty(
DISPID dwDispID,
VARTYPE vtProp,
void* pvProp)const;
パラメーター
dwDispID
取得するプロパティを識別します。
vtProp
取得するプロパティの型を指定します。 使用可能な値については、 の「解説」セクションを COleDispatchDriver::InvokeHelper
参照してください。
pvProp
プロパティ値を受け取る変数のアドレス。 これは、 vtProp
によって指定される型と一致する必要があります。
注釈
GetProperty
は を介して値を pvProp
返します。
注意
この関数は、ActiveX コントロールを CWnd
表すオブジェクトでのみ呼び出す必要があります。
ActiveX コントロール コンテナーでこのメンバー関数を使用する方法の詳細については、「 ActiveX コントロール コンテナー: ActiveX コントロール コンテナーでの ActiveX コントロールのプログラミング」の記事を参照してください。
CWnd::GetRenderTarget
このウィンドウに関連付けられているレンダー ターゲットを取得します。
CHwndRenderTarget* GetRenderTarget();
戻り値
レンダー ターゲットまたは NULL
へのポインター。
CWnd::GetSafeHwnd
ポインターが m_hWnd
の場合はNULL
、 または NULL
をthis
返します。
HWND GetSafeHwnd() const;
戻り値
ウィンドウのウィンドウ ハンドルを返します。 NULL
がウィンドウにアタッチされていない場合CWnd
、またはポインターで使用されている場合は をNULL
CWnd
返します。
例
CWnd::SubclassWindow
の例を参照してください。
CWnd::GetSafeOwner
ダイアログ ボックスやその他のモーダル ウィンドウに使用する所有者ウィンドウを取得するには、このメンバー関数を呼び出します。
static CWnd* GetSafeOwner(
CWnd* pParent = NULL,
HWND* pWndTop = NULL);
パラメーター
pParent
親 CWnd
ウィンドウへのポインター。 NULL
でもかまいません。
pWndTop
現在上部にあるウィンドウへのポインター。 NULL
でもかまいません。
戻り値
指定されたウィンドウの安全な所有者へのポインター。
注釈
安全な所有者は、 の最初の非子親ウィンドウ pParent
です。 が NULL
の場合pParent
、スレッドのメイン ウィンドウ (を介して取得) が使用されAfxGetMainWnd
、所有者が検索されます。
注意
フレームワーク自体は、この関数を使用して、所有者が指定されていないダイアログ ボックスとプロパティ シートの適切な所有者ウィンドウを決定します。
CWnd::GetScrollBarCtrl
指定した兄弟スクロール バーまたは分割ウィンドウへのポインターを取得するには、このメンバー関数を呼び出します。
virtual CScrollBar* GetScrollBarCtrl(int nBar) const;
パラメーター
nBar
スクロール バーの種類を指定します。 パラメーターは、次のいずれかの値を受け取ることができます。
SB_HORZ
水平スクロール バーの位置を取得します。SB_VERT
垂直スクロール バーの位置を取得します。
戻り値
兄弟スクロール バー コントロール。存在 NULL
しない場合は 。
注釈
このメンバー関数は、ウィンドウの作成時に ビットまたは WS_VSCROLL
ビットが設定されたときにWS_HSCROLL
作成されたスクロール バーでは動作しません。 この関数の実装では CWnd
、 が返される NULL
だけです。 などの CView
派生クラスは、説明されている機能を実装します。
CWnd::GetScrollBarInfo
指定されたスクロール バーの情報を取得します。
BOOL GetScrollBarInfo(
LONG idObject,
PSCROLLBARINFO psbi) const;
パラメーター
idObject
メニュー オブジェクトを指定します。 有効な値の一覧については、「GetScrollBarInfo
」を参照してください。
psbi
情報を SCROLLBARINFO
受け取る構造体へのポインター。
戻り値
関数が正常終了した場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 GetScrollBarInfo
の機能をエミュレートします。
CWnd::GetScrollInfo
このメンバー関数を呼び出して、構造体が SCROLLINFO
スクロール バーに関して保持する情報を取得します。
BOOL GetScrollInfo(
int nBar,
LPSCROLLINFO lpScrollInfo,
UINT nMask = SIF_ALL);
パラメーター
nBar
スクロール バーがコントロールであるか、ウィンドウの非クライアント領域の一部であるかを指定します。 非クライアント領域の一部である場合は、 nBar
スクロール バーが水平方向、垂直方向、またはその両方に配置されているかどうかを示します。 次のいずれかである必要があります。
SB_CTL
スクロール バー コントロールのパラメーターを取得します。 データ メンバーはm_hWnd
、スクロール バー コントロールのハンドルである必要があります。SB_HORZ
ウィンドウの標準の水平スクロール バーのパラメーターを取得します。SB_VERT
ウィンドウの標準的な垂直スクロール バーのパラメーターを取得します。
lpScrollInfo
SCROLLINFO
構造体へのポインター。 この構造の詳細については、Windows SDK を参照してください。
nMask
取得するスクロール バー パラメーターを指定します。 既定値では、および のSIF_PAGE
SIF_POS
SIF_TRACKPOS
組み合わせを指定しますSIF_RANGE
。 値の詳細については、「」をnMask
参照してくださいSCROLLINFO
。
戻り値
メッセージが値を取得した場合、戻り値は です TRUE
。 それ以外の場合は、FALSE
となります。
注釈
GetScrollInfo
を使用すると、アプリケーションで 32 ビットのスクロール位置を使用できます。
構造体には SCROLLINFO
、スクロール バーに関する情報が含まれます。これには、スクロールの最小位置と最大位置、ページ サイズ、スクロール ボックスの位置 (親指) が含まれます。 構造の既定値の SCROLLINFO
変更の詳細については、Windows SDK の構造に関するトピックを参照してください。
スクロール バーの位置 CWnd::OnHScroll と CWnd::OnVScroll を示す MFC Windows メッセージ ハンドラーでは、16 ビットの位置データのみが提供されます。 GetScrollInfo
SetScrollInfo
32 ビットのスクロール バー位置データを提供します。 したがって、アプリケーションは、 または CWnd::OnVScroll
のいずれかをCWnd::OnHScroll
処理中に を呼び出GetScrollInfo
して、32 ビットのスクロール バー位置データを取得できます。
CWnd::GetScrollLimit
このメンバー関数を呼び出して、スクロール バーの最大スクロール位置を取得します。
int GetScrollLimit(int nBar);
パラメーター
nBar
スクロール バーの種類を指定します。 パラメーターは、次のいずれかの値を受け取ることができます。
SB_HORZ
水平スクロール バーのスクロール制限を取得します。SB_VERT
垂直スクロール バーのスクロール制限を取得します。
戻り値
成功した場合のスクロール バーの最大位置を指定します。それ以外の場合は 0。
CWnd::GetScrollPos
スクロール バーのスクロール ボックスの現在位置を取得します。
int GetScrollPos(int nBar) const;
パラメーター
nBar
調べるスクロール バーを指定します。 パラメーターは、次のいずれかの値を受け取ることができます。
SB_HORZ
水平スクロール バーの位置を取得します。SB_VERT
垂直スクロール バーの位置を取得します。
戻り値
成功した場合にスクロール バー内のスクロール ボックスの現在の位置を指定します。それ以外の場合は 0。
注釈
現在の位置は、現在のスクロール範囲に依存する相対値です。 たとえば、スクロール範囲が 50 から 100 で、スクロール ボックスがバーの中央にある場合、現在の位置は 75 です。
CWnd::GetScrollRange
指定したスクロール バーの現在の最小および最大スクロール バーの位置を、 と lpMaxPos
でlpMinPos
指定された場所にコピーします。
void GetScrollRange(
int nBar,
LPINT lpMinPos,
LPINT lpMaxPos) const;
パラメーター
nBar
調べるスクロール バーを指定します。 パラメーターは、次のいずれかの値を受け取ることができます。
SB_HORZ
水平スクロール バーの位置を取得します。SB_VERT
垂直スクロール バーの位置を取得します。
lpMinPos
最小位置を受け取る整数変数を指します。
lpMaxPos
最大位置を受け取る整数変数を指します。
注釈
スクロール バーがない場合CWnd
、メンバー関数は GetScrollRange
と に 0 をlpMinPos
lpMaxPos
コピーします。
標準スクロール バーの既定の範囲は 0 ~ 100 です。 スクロール バー コントロールの既定の範囲は空です (両方の値は 0 です)。
CWnd::GetStyle
現在のウィンドウ スタイルを返します。
DWORD GetStyle() const;
戻り値
ウィンドウのスタイル。 MFC で使用されるウィンドウ スタイルの詳細については、「 ウィンドウ スタイル」を参照してください。
CWnd::GetSystemMenu
アプリケーションがコピーおよび変更のためにコントロール メニューにアクセスできるようにします。
CMenu* GetSystemMenu(BOOL bRevert) const;
パラメーター
bRevert
実行するアクションを指定します。 が のGetSystemMenu
場合bRevert
はFALSE
、現在使用中の [コントロール] メニューのコピーへのハンドルを返します。 このコピーは、最初は [コントロール] メニューと同じですが、変更できます。 が のTRUE
GetSystemMenu
場合bRevert
、コントロール メニューが既定の状態にリセットされます。 前の (変更された可能性がある) コントロール メニューがある場合は、破棄されます。 この場合、戻り値は未定義です。
戻り値
が の場合、コントロール メニューのコピーをbRevert
FALSE
識別します。 が のTRUE
場合bRevert
、戻り値は未定義です。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
コントロール メニューの独自のコピーを作成するために使用 GetSystemMenu
しないウィンドウは、標準の [コントロール] メニューを受け取ります。
メンバー関数によってGetSystemMenu
返されるポインターは、または CMenu::ModifyMenu
関数と共にCMenu::AppendMenu
CMenu::InsertMenu
使用して、[コントロール] メニューを変更できます。
[コントロール] メニューには、最初は、 などのSC_CLOSE
SC_MOVE
SC_SIZE
さまざまな ID 値で識別される項目が含まれています。 [コントロール] メニューの項目は、メッセージを生成 WM_SYSCOMMAND
します。 定義済みのすべてのコントロール メニュー項目には、0xF000より大きい ID 番号があります。 アプリケーションがコントロール メニューに項目を追加する場合は、F000 未満の ID 番号を使用する必要があります。
Windows では、標準の [コントロール] メニューでアイテムが自動的に使用できなくなる場合があります。 CWnd
は、メニューが表示される前に送信されるメッセージに応答することで、独自の WM_INITMENU
選択または使用不可を実行できます。
例
// The following code fragment is taken from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu *pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUT);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CWnd::GetTitleBarInfo
指定されたタイトル バーの情報を取得します。
BOOL GetTitleBarInfo(PTITLEBARINFO pti) const;
パラメーター
pti
情報を TITLEBARINFO
受け取る構造体へのポインター。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 GetTitleBarInfo
の機能をエミュレートします。
CWnd::GetTopLevelFrame
このメンバー関数を呼び出して、ウィンドウの最上位フレーム ウィンドウ (存在する場合) を取得します。
CFrameWnd* GetTopLevelFrame() const;
戻り値
ウィンドウの最上位フレーム ウィンドウを識別します。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
ウィンドウがアタッチされていない場合、またはその最上位の親が派生オブジェクトでないCFrameWnd
場合CWnd
、この関数は を返しますNULL
。
CWnd::GetTopLevelOwner
最上位ウィンドウを取得するには、このメンバー関数を呼び出します。
CWnd* GetTopLevelOwner() const;
戻り値
最上位ウィンドウを識別します。 返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
最上位のウィンドウは、デスクトップの子であるウィンドウです。 ウィンドウがアタッチされていない場合 CWnd
、この関数は を返します NULL
。
CWnd::GetTopLevelParent
ウィンドウの最上位の親を取得するには、このメンバー関数を呼び出します。
CWnd* GetTopLevelParent() const;
戻り値
ウィンドウの最上位の親ウィンドウを識別します。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
GetTopLevelParent
は と GetTopLevelOwner
にGetTopLevelFrame
似ていますが、現在の所有者ウィンドウとして設定された値は無視されます。
CWnd::GetTopWindow
に属する最上位の子ウィンドウを CWnd
検索します。
CWnd* GetTopWindow() const;
戻り値
子ウィンドウのリンクされたリスト内の最上位の子ウィンドウを CWnd
識別します。 子ウィンドウが存在しない場合、値は です NULL
。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
子がない場合 CWnd
、この関数は を返します NULL
。
CWnd::GetUpdateRect
更新領域を完全に囲む最小の四角形の座標を取得します。
BOOL GetUpdateRect(
LPRECT lpRect,
BOOL bErase = FALSE);
パラメーター
lpRect
更新領域を CRect
囲む更新プログラムのクライアント座標を受け取るオブジェクトまたは RECT
構造体 を指します。
更新リージョンが NULL
内に存在するかどうかを判断するには、このパラメーターを に設定します CWnd
。 が のNULL
場合lpRect
、メンバー関数はGetUpdateRect
更新領域が存在する場合は 0 以外を返し、存在しない場合は 0 を返します。 これにより、メッセージが無効な WM_PAINT
領域から発生したかどうかを判断する方法が提供されます。 Windows バージョン 3.0 以前では、このパラメーターを に NULL
設定しないでください。
bErase
更新領域の背景を消去するかどうかを指定します。
戻り値
更新リージョンの状態を指定します。 更新領域が空でない場合、値は 0 以外です。それ以外の場合は 0。
パラメーターが lpRect
に NULL
設定されている場合、更新領域が存在する場合は戻り値は 0 以外です。それ以外の場合は 0 です。
注釈
スタイルを使用してCS_OWNDC
作成され、マッピング モードが ではないGetUpdateRect
MM_TEXT
場合CWnd
、メンバー関数は四角形を論理座標で指定します。 それ以外の場合は、 GetUpdateRect
クライアント座標で四角形を指定します。 更新領域がない場合は、 GetUpdateRect
四角形を空に設定します (すべての座標を 0 に設定します)。
パラメーターは bErase
、更新領域の背景を消去するかどうかを GetUpdateRect
指定します。 が でTRUE
、更新リージョンが空でない場合bErase
、背景は消去されます。 背景を消去するには、 GetUpdateRect
メッセージを送信します WM_ERASEBKGND
。
メンバー関数によって BeginPaint
取得される更新四角形は、メンバー関数によって取得された四角形と GetUpdateRect
同じです。
メンバー関数はBeginPaint
更新リージョンを自動的に検証するため、 の呼び出しの直後にGetUpdateRect
BeginPaint
行われたすべての呼び出しで空の更新領域が取得されます。
CWnd::GetUpdateRgn
によって識別されるリージョンに更新リージョンを pRgn
取得します。
int GetUpdateRgn(
CRgn* pRgn,
BOOL bErase = FALSE);
パラメーター
pRgn
更新リージョンを識別します。
bErase
背景を消去し、子ウィンドウの非クライアント領域を描画するかどうかを指定します。 値が の場合、 FALSE
描画は行われません。
戻り値
結果の領域の種類を示す短整数フラグを指定します。 この値は、次のいずれかを受け取ることができます。
SIMPLEREGION
領域に重複する罫線はありません。COMPLEXREGION
領域に重複する罫線があります。NULLREGION
リージョンが空です。ERROR
リージョンは作成されませんでした。
注釈
この領域の座標は、左上隅 (クライアント座標) に対する相対座標です。
メンバー関数はBeginPaint
更新リージョンを自動的に検証するため、 の呼び出しの直後にGetUpdateRgn
BeginPaint
行われたすべての呼び出しで空の更新領域が取得されます。
CWnd::GetWindow
要求されたウィンドウへのポインターを返します NULL
。存在しない場合は を返します。
CWnd* GetWindow(UINT nCmd) const;
パラメーター
*nCmd*
と返されるウィンドウの間 CWnd
のリレーションシップを指定します。 次のいずれかの値を使用できます。
GW_CHILD
最初の子ウィンドウをCWnd
識別します。GW_HWNDFIRST
が子ウィンドウの場合CWnd
は、最初の兄弟ウィンドウを返します。 それ以外の場合は、リスト内の最初の最上位ウィンドウが返されます。GW_HWNDLAST
が子ウィンドウの場合CWnd
は、最後の兄弟ウィンドウを返します。 それ以外の場合は、一覧の最後の最上位ウィンドウが返されます。GW_HWNDNEXT
ウィンドウ マネージャーの一覧の次のウィンドウを返します。GW_HWNDPREV
ウィンドウ マネージャーの一覧の前のウィンドウを返します。GW_OWNER
所有者を識別しますCWnd
。
戻り値
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
CWnd::GetWindowContextHelpId
このメンバー関数を呼び出して、ウィンドウに関連付けられているヘルプ コンテキスト識別子 (存在する場合) を取得します。
DWORD GetWindowContextHelpId() const;
戻り値
ヘルプ コンテキスト識別子。 ウィンドウに何もない場合は 0 を返します。
CWnd::GetWindowedChildCount
関連付けられている子ウィンドウの数を取得するには、このメンバー関数を呼び出します。
long GetWindowedChildCount();
戻り値
オブジェクトに関連付けられている子ウィンドウの CWnd
数。
CWnd::GetWindowDC
キャプション バー、メニュー、スクロール バーなど、ウィンドウ全体の表示コンテキストを取得します。
CDC* GetWindowDC();
戻り値
関数が成功した場合に、指定されたウィンドウの表示コンテキストを識別します。それ以外の場合 NULL
は 。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。 ReleaseDC
への正常な呼び出しごとに 1 回呼び出す GetWindowDC
必要があります。
注釈
コンテキストの原点はクライアント領域ではなく の左上隅CWnd
であるため、ウィンドウ表示コンテキストでは、 内の任意の場所CWnd
に描画できます。
既定の属性は、コンテキストを取得するたびに表示コンテキストに割り当てられます。 以前の属性は失われます。
GetWindowDC
は、非クライアント領域内の特殊な描画効果に CWnd
使用することを目的としています。 任意のウィンドウの非クライアント領域で描画することはお勧めしません。
Windows 関数を GetSystemMetrics
使用すると、キャプション バー、メニュー、スクロール バーなど、非クライアント領域のさまざまな部分のディメンションを取得できます。
描画が完了したら、表示コンテキストを ReleaseDC
解放するためにメンバー関数を呼び出す必要があります。 表示コンテキストを解放しないと、同時に開くことができるデバイス コンテキストの数に制限があるため、アプリケーションによって要求された描画に大きく影響します。
CWnd::GetWindowInfo
ウィンドウに関する情報を取得します。
BOOL GetWindowInfo(PWINDOWINFO pwi) const;
パラメーター
pwi
WINDOWINFO
構造体へのポインター。
解説
このメンバー関数は、Windows SDK で説明されているように、 関数 GetWindowInfo
の機能をエミュレートします。
CWnd::GetWindowlessChildCount
関連付けられたウィンドウなしの子ウィンドウの数を取得します。
long GetWindowlessChildCount();
戻り値
オブジェクトに関連付けられているウィンドウなしの子ウィンドウの CWnd
数。
CWnd::GetWindowPlacement
ウィンドウの表示状態、通常の位置 (復元された位置)、最小化された位置、および最大表示された位置を取得します。
BOOL GetWindowPlacement(WINDOWPLACEMENT* lpwndpl) const;
パラメーター
lpwndpl
表示状態 WINDOWPLACEMENT
と位置情報を受け取る構造体を指します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
flags
この関数によって取得される構造体のWINDOWPLACEMENT
メンバーは常に 0 です。 が最大化されている場合CWnd
、 のshowCmd
WINDOWPLACEMENT
メンバーは ですSW_SHOWMAXIMIZED
。 ウィンドウが最小化されている場合は です SW_SHOWMINIMIZED
。 それ以外の場合は SW_SHOWNORMAL
です。
CWnd::GetWindowRect
オブジェクトの外接する四角形の寸法を、 CWnd
が lpRect
指す構造体にコピーします。
void GetWindowRect(LPRECT lpRect) const;
パラメーター
lpRect
CRect
左上と右下の角の画面座標を受け取るオブジェクトまたはRECT
構造体を指します。
注釈
寸法は、表示画面の左上隅を基準とした画面座標で指定されます。 キャプション、罫線、スクロール バーの寸法 (存在する場合) が含まれます。
CWnd::GetWindowRgn
このメンバー関数を呼び出して、ウィンドウのウィンドウ領域を取得します。
int GetWindowRgn(HRGN hRgn)const;
パラメーター
hRgn
ウィンドウ領域へのハンドル。
戻り値
戻り値は、関数が取得する領域の型を指定します。 次のいずれかの値を指定できます。
NULLREGION
リージョンが空です。SIMPLEREGION
領域は 1 つの四角形です。COMPLEXREGION
領域は複数の四角形です。ERROR
エラーが発生しました。リージョンは影響を受けません。
注釈
ウィンドウ領域は、オペレーティング システムが描画を許可するウィンドウ内の領域を決定します。 オペレーティング システムでは、ウィンドウ領域の外側にあるウィンドウの一部は表示されません。
ウィンドウのウィンドウ領域の座標は、ウィンドウのクライアント領域ではなく、ウィンドウの左上隅に対して相対的です。
ウィンドウのウィンドウ領域を設定するには、 を呼び出します CWnd::SetWindowRgn
。
CWnd::GetWindowText
キャプション タイトル CWnd
(タイトルがある場合) を、 または が lpszStringBuf
指すバッファーにコピー先の文字列にコピーします rString
。
int GetWindowText(
LPTSTR lpszStringBuf,
int nMaxCount) const;
void GetWindowText(
CString& rString) const;
パラメーター
lpszStringBuf
ウィンドウのタイトルのコピーされた文字列を受け取るバッファーを指します。
nMaxCount
バッファーにコピーする最大文字数 (終端の null 文字を含む) を指定します。 文字列が で nMaxCount
指定された文字数より長い場合は、切り捨てられます。
rString
ウィンドウの CString
タイトルのコピーされた文字列を受け取る オブジェクト。
戻り値
コピーした文字列の長さを文字単位で指定します。終端の null 文字は含まれません。 キャプションがない場合 CWnd
は 0、キャプションが空の場合は 0 です。
注釈
オブジェクトが CWnd
コントロールの場合、 GetWindowText
メンバー関数はキャプションをコピーするのではなく、コントロール内のテキストをコピーします。
このメンバー関数により、メッセージが WM_GETTEXT
オブジェクトに CWnd
送信されます。
例
CWnd::SetWindowText
の例を参照してください。
CWnd::GetWindowTextLength
オブジェクトキャプションタイトルの CWnd
長さを返します。
int GetWindowTextLength() const;
戻り値
文字列の長さを文字単位で指定します。null 終端文字は含まれません。 このようなテキストが存在しない場合、値は 0 です。
注釈
が コントロールの場合 CWnd
、 GetWindowTextLength
メンバー関数はキャプションの代わりにコントロール内のテキストの長さを返します。
このメンバー関数により、メッセージが WM_GETTEXTLENGTH
オブジェクトに CWnd
送信されます。
例
CWnd::SetWindowText
の例を参照してください。
CWnd::HideCaret
ディスプレイ画面からキャレットを削除して非表示にします。
void HideCaret();
注釈
キャレットは表示されなくなりましたが、メンバー関数を使用 ShowCaret
して再び表示できます。 キャレットを非表示にしても、現在の図形は破棄されません。
非表示は累積的です。 が 1 行に 5 回呼び出された場合 HideCaret
は、キャレットが ShowCaret
表示される前にメンバー関数を 5 回呼び出す必要があります。
CWnd::HiliteMenuItem
最上位 (メニュー バー) メニュー項目からハイライトを強調表示または削除します。
BOOL HiliteMenuItem(
CMenu* pMenu,
UINT nIDHiliteItem,
UINT nHilite);
パラメーター
pMenu
強調表示する項目を含む最上位メニューを識別します。
nIDHiliteItem
パラメーターの値に応じて、強調表示するメニュー項目を nHilite
指定します。
nHilite
メニュー項目を強調表示するか、強調表示を削除するかを指定します。 または と を組み合わせて MF_HILITE
MF_UNHILITE
MF_BYCOMMAND
使用 MF_BYPOSITION
できます。 値は、ビットごとの OR
演算子を使用して組み合わせることができます。 これらの値には次の意味があります。
MF_BYCOMMAND
nIDHiliteItem
メニュー項目 ID (既定の解釈) として解釈されます。MF_BYPOSITION
メニュー項目のnIDHiliteItem
0 から始まるオフセットとして解釈されます。MF_HILITE
項目を強調表示します。 この値が指定されていない場合、強調表示はアイテムから削除されます。MF_UNHILITE
アイテムから強調表示を削除します。
戻り値
メニュー項目が強調表示されたかどうかを指定します。 項目が強調表示されている場合は 0 以外。それ以外の場合は 0。
注釈
フラグと MF_UNHILITE
フラグはMF_HILITE
、このメンバー関数でのみ使用できます。メンバー関数ではCMenu::ModifyMenu
使用できません。
CWnd::HtmlHelp
このメンバー関数を呼び出して、HTMLHelp アプリケーションを呼び出します。
virtual void HtmlHelp(
DWORD_PTR dwData,
UINT nCmd = 0x000F);
パラメーター
dwData
追加データを指定します。 使用される値は、 パラメーターの nCmd
値によって異なります。
nCmd
要求されるヘルプの種類を指定します。 使用可能な値の一覧と、それらがパラメーターに与える影響 dwData
については、Windows SDK の HTML ヘルプ API リファレンスで説明されているパラメーターを参照してください uCommand
。
注釈
詳細については、「 CWinApp::HtmlHelp
」を参照してください。
CWnd::InitDynamicLayout
ウィンドウの動的レイアウトを初期化するために、フレームワークによって呼び出されます。
void InitDynamicLayout();
注釈
このメソッドを直接呼び出さないでください。
CWnd::Invalidate
のクライアント領域 CWnd
全体を無効にします。
void Invalidate(BOOL bErase = TRUE);
パラメーター
bErase
更新領域内の背景を消去するかどうかを指定します。
注釈
クライアント領域は、次 WM_PAINT
のメッセージが発生したときに描画用にマークされます。 または メンバー関数によってメッセージが発生するWM_PAINT
前に、リージョンをValidateRect
ValidateRgn
検証することもできます。
パラメーターは bErase
、更新領域が処理されるときに、更新領域内の背景を消去するかどうかを指定します。 が の場合bErase
、メンバー関数が呼び出されたときにBeginPaint
背景は消去されます。が のFALSE
場合bErase
、背景は変更TRUE
されません。 が更新リージョンの任意の部分に対して のTRUE
場合bErase
、指定された部分だけでなく、リージョン全体の背景が消去されます。
Windows は、 WM_PAINT
更新リージョンが空でなく、そのウィンドウのアプリケーション キューに他のメッセージがない場合に常 CWnd
にメッセージを送信します。
例
CWnd::UpdateWindow
の例を参照してください。
CWnd::InvalidateRect
その四角形を更新領域に追加することで、指定された四角形内のクライアント領域を CWnd
無効にします。
void InvalidateRect(
LPCRECT lpRect,
BOOL bErase = TRUE);
パラメーター
lpRect
更新領域に CRect
追加する四角形 (クライアント座標) を含むオブジェクトまたは RECT
構造体 を指します。 が のNULL
場合lpRect
、クライアント領域全体がリージョンに追加されます。
bErase
更新領域内の背景を消去するかどうかを指定します。
注釈
無効にされた四角形は、更新領域の他のすべての領域と共に、次 WM_PAINT
のメッセージが送信されたときに塗りつぶし用にマークされます。 無効化された領域は、次WM_PAINT
の呼び出しが発生したときにリージョンが処理されるまで、または または メンバー関数によってリージョンが検証されるまで、更新リージョンにValidateRgn
ValidateRect
蓄積されます。
パラメーターは bErase
、更新領域が処理されるときに、更新領域内の背景を消去するかどうかを指定します。 が の場合bErase
、メンバー関数が呼び出されたときにBeginPaint
背景は消去されます。が のFALSE
場合bErase
、背景は変更TRUE
されません。 がTRUE
更新リージョンの任意の部分に対して の場合bErase
、指定された部分だけでなく、リージョン全体の背景が消去されます。
Windows は、 WM_PAINT
更新リージョンが空でなく、そのウィンドウのアプリケーション キューに他のメッセージがない場合に常 CWnd
にメッセージを送信します。
CWnd::InvalidateRgn
の現在の更新リージョンに追加することで、特定のリージョン内の CWnd
クライアント領域を無効にします。
void InvalidateRgn(
CRgn* pRgn,
BOOL bErase = TRUE);
パラメーター
pRgn
更新リージョンに CRgn
追加するリージョンを識別する オブジェクトへのポインター。 リージョンは、クライアント座標を持つものと見なされます。 このパラメーターが の場合、 NULL
クライアント領域全体が更新リージョンに追加されます。
bErase
更新領域内の背景を消去するかどうかを指定します。
注釈
無効にされたリージョンと、更新リージョン内の他のすべての領域は、メッセージが次に送信されるときに塗りつぶし用に WM_PAINT
マークされます。 無効にされた領域は、メッセージが次に送信されるときにWM_PAINT
リージョンが処理されるまで、または または メンバー関数によってリージョンが検証されるまで、更新リージョンにValidateRect
ValidateRgn
蓄積されます。
パラメーターは bErase
、更新領域が処理されるときに、更新領域内の背景を消去するかどうかを指定します。 が の場合bErase
、メンバー関数が呼び出されたときにBeginPaint
背景は消去されます。が のFALSE
場合bErase
、背景は変更TRUE
されません。 が更新リージョンの任意の部分に対して のTRUE
場合bErase
、指定された部分だけでなく、リージョン全体の背景が消去されます。
Windows は、 WM_PAINT
更新リージョンが空でなく、そのウィンドウのアプリケーション キューに他のメッセージがない場合に常 CWnd
にメッセージを送信します。
指定されたリージョンは、リージョン関数の 1 つによって以前に作成されている必要があります。
CWnd::InvokeHelper
このメンバー関数を呼び出して、 で指定されたコンテキストで、 で dwDispID
指定された ActiveX Control メソッドまたはプロパティを呼び出します wFlags
。
void AFX_CDECL InvokeHelper(
DISPID dwDispID,
WORD wFlags,
VARTYPE vtRet,
void* pvRet,
const BYTE* pbParamInfo,
... );
パラメーター
dwDispID
呼び出されるメソッドまたはプロパティを識別します。
wFlags
への IDispatch::Invoke
呼び出しのコンテキストを記述するフラグ。
vtRet
戻り値の型を指定します。 使用可能な値については、 の「解説」セクションを COleDispatchDriver::InvokeHelper
参照してください。
pvRet
プロパティ値または戻り値を受け取る変数のアドレス。 これは、 vtRet
によって指定される型と一致する必要があります。
pbParamInfo
pbParamInfo
に従うパラメーターの型を指定するバイトの null で終わる文字列へのポインター。 使用可能な値については、 の「解説」セクションを COleDispatchDriver::InvokeHelper
参照してください。
...
変数 で指定された型のパラメーターの pbParamInfo
一覧。
注釈
pbParamInfo
パラメーターは、メソッドまたはプロパティに渡されるパラメーターの型を指定します。 引数の変数リストは、 構文宣言で によって ...
表されます。
この関数は、パラメーターを値に VARIANTARG
変換し、ActiveX コントロールで メソッドを呼び出 IDispatch::Invoke
します。 IDispatch::Invoke
の呼び出しに失敗すると、この関数は、例外をスローします。 SCODE
によってIDispatch::Invoke
返される (状態コード) が の場合、この関数は DISP_E_EXCEPTION
オブジェクトをCOleException
スローし、それ以外の場合は をCOleDispatchException
スローします。
注意
この関数は、ActiveX コントロールを CWnd
表すオブジェクトでのみ呼び出す必要があります。
ActiveX コントロール コンテナーでこのメンバー関数を使用する方法の詳細については、「 ActiveX コントロール コンテナー: ActiveX コントロール コンテナーでの ActiveX コントロールのプログラミング」の記事を参照してください。
CWnd::IsChild
で pWnd
指定されたウィンドウが の子ウィンドウまたはその他の直接の CWnd
子孫であるかどうかを示します。
BOOL IsChild(const CWnd* pWnd) const;
パラメーター
pWnd
テストするウィンドウを識別します。
戻り値
関数の結果を指定します。 で pWnd
識別されるウィンドウが の子ウィンドウの場合、値は 0 以外の値になります。それ以外の CWnd
場合は 0 です。
注釈
オブジェクトが元の CWnd
ポップアップ ウィンドウから子ウィンドウに続く親ウィンドウのチェーンにある場合 CWnd
、子ウィンドウは の直接の子孫です。
CWnd::IsD2DSupportEnabled
D2D サポートが有効かどうかを判断します。
BOOL IsD2DSupportEnabled();
戻り値
TRUE
機能が有効になっている場合は 。それ以外の場合 FALSE
は 。
CWnd::IsDialogMessage
このメンバー関数を呼び出して、指定されたメッセージがモードレス ダイアログ ボックスを対象としているかどうかを判断します。その場合、この関数はメッセージを処理します。
BOOL IsDialogMessage(LPMSG lpMsg);
パラメーター
lpMsg
チェック対象の MSG
メッセージを含む構造体を指します。
戻り値
メンバー関数が指定されたメッセージを処理したかどうかを指定します。 メッセージが処理されている場合は 0 以外です。それ以外の場合は 0。 戻り値が 0 の場合は、基本クラスの CWnd::PreTranslateMessage
メンバー関数を呼び出してメッセージを処理します。 メンバー関数の CWnd::PreTranslateMessage
オーバーライドでは、コードは次のようになります。
BOOL CAboutDlg::PreTranslateMessage(MSG *pMsg)
{
if (IsDialogMessage(pMsg))
return TRUE;
else
return CDialog::PreTranslateMessage(pMsg);
}
注釈
関数は IsDialogMessage
、メッセージを処理するときに、キーボード メッセージをチェックし、対応するダイアログ ボックスの選択コマンドに変換します。 たとえば、TAB キーを押して次のコントロールまたはコントロールのグループを選択し、↓キーを押してグループ内の次のコントロールを選択します。
によって処理された IsDialogMessage
メッセージは、既に TranslateMessage
処理されているため、 または DispatchMessage
Windows 関数に渡す必要があります。
CWnd::IsDlgButtonChecked
ボタン コントロールの横にチェック マークがあるかどうかを判断します。
UINT IsDlgButtonChecked(int nIDButton) const;
パラメーター
nIDButton
ボタン コントロールの整数識別子を指定します。
戻り値
指定されたコントロールがチェックされている場合は 0 以外、チェックされていない場合は 0。 オプション ボタンとチェック ボックスのみをオンにできます。 3 つの状態のボタンの場合、ボタンが不確定の場合、戻り値は 2 になります。 このメンバー関数は、プッシュ ボタンに対して 0 を返します。
注釈
ボタンが 3 つの状態コントロールの場合、メンバー関数は、それが淡色表示、チェック、またはどちらも行われるかどうかを判断します。
CWnd::IsDynamicLayoutEnabled
このウィンドウで動的レイアウトが有効かどうかを判断します。 動的レイアウトが有効な場合は、ユーザーが親ウィンドウのサイズを変更したときに、子ウィンドウの位置とサイズを変更できます。
BOOL IsDynamicLayoutEnabled() const;
戻り値
TRUE
動的レイアウトが有効な場合は 。それ以外の場合 FALSE
は 。
注釈
CWnd::IsIconic
を最小化 (アイコン) するかどうかを CWnd
指定します。
BOOL IsIconic() const;
戻り値
が最小化されている場合 CWnd
は 0 以外、それ以外の場合は 0。
例
void CAboutDlg::OnPaint()
{
// This code, normally emitted by the Application Wizard for a dialog-
// based project for the dialog's WM_PAINT handler, runs only if the
// window is iconic. The window erases the icon's area, then
// paints the icon referenced by m_hIcon.
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM)dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
CWnd::IsTouchWindow
CWnd
でタッチ操作がサポートされているかどうかを示します。
BOOL IsTouchWindow() const;
戻り値
TRUE
タッチサポートがある場合 CWnd
は 。それ以外の場合 FALSE
は 。
注釈
CWnd::IsWindowEnabled
マウスとキーボードの入力を有効にするかどうかを CWnd
指定します。
BOOL IsWindowEnabled() const;
戻り値
が有効な場合 CWnd
は 0 以外、それ以外の場合は 0。
例
//change the background color of an edit control on the dialog
HBRUSH CMyDlg::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd->GetDlgCtrlID() == IDC_MYEDIT)
{
if (pWnd->IsWindowEnabled())
{
// Red brush for the background...
pDC->SetBkColor(RGB(255, 0, 0));
// m_pRedBrush is the CBrush object initialized with a red brush
// using CreateSolidBrush
return (HBRUSH)m_RedBrush.GetSafeHandle();
}
else
{
// Blue brush for the background...
pDC->SetBkColor(RGB(0, 0, 255));
// m_pBlueBrush is the CBrush object initialized with a blue
// brush using CreateSolidBrush
return (HBRUSH)m_BlueBrush.GetSafeHandle();
}
}
return hbr;
}
CWnd::IsWindowVisible
指定されたウィンドウの表示状態を決定します。
BOOL IsWindowVisible() const;
戻り値
が表示されている場合 CWnd
は 0 以外 ( WS_VISIBLE
スタイル ビットが設定され、親ウィンドウが表示されます)。 戻り値はスタイル ビットの状態を WS_VISIBLE
反映するため、他のウィンドウで完全に隠されていても、戻り値は 0 以外 CWnd
になる可能性があります。
注釈
ウィンドウには、スタイル ビットで示される表示状態があります WS_VISIBLE
。 このスタイル ビットをメンバー関数の ShowWindow
呼び出しで設定すると、ウィンドウが表示され、ウィンドウにスタイル ビットが設定されている限り、ウィンドウへの後続の描画が表示されます。
スタイルを持つウィンドウへの描画は WS_VISIBLE
、ウィンドウが他のウィンドウで覆われているか、親ウィンドウでクリップされている場合は表示されません。
例
// This example uses the CWnd::IsWindowVisible() function to
// determine if a dialog box is visible. If it is not, it calls
// CWnd::ShowWindow with the SW_SHOWNORMAL command.
void CMainFrame::DisplayModeless()
{
if(!m_Modeless.IsWindowVisible())
{
m_Modeless.ShowWindow(SW_SHOWNORMAL);
}
}
// This example uses the CWnd::IsWindowVisible() function to
// determine if a dialog box is visible. If it is, it calls
// CWnd::ShowWindow with the SW_HIDE command.
void CMainFrame::HideModeless()
{
if(m_Modeless.IsWindowVisible())
{
m_Modeless.ShowWindow(SW_HIDE);
}
}
CWnd::IsZoomed
最大化されているかどうかを CWnd
判断します。
BOOL IsZoomed() const;
戻り値
が最大化されている場合 CWnd
は 0 以外、それ以外の場合は 0。
CWnd::KillTimer
の以前の呼び出しから によって nIDEvent
識別されたタイマー イベントを SetTimer
強制終了します。
BOOL KillTimer(UINT_PTR nIDEvent);
パラメーター
nIDEvent
に SetTimer
渡されるタイマー イベントの値。
戻り値
関数の結果を指定します。 イベントが強制終了された場合、値は 0 以外です。 メンバー関数が指定されたタイマー イベントを KillTimer
見つけられなかった場合は 0 です。
注釈
タイマーに関連付けられている保留中 WM_TIMER
のメッセージは、メッセージ キューから削除されません。
例
CWnd::SetTimer
の例を参照してください。
CWnd::LoadDynamicLayoutResource
リソース ファイルから動的レイアウト情報を読み込むために、フレームワークによって呼び出されます。
BOOL LoadDynamicLayoutResource(LPCTSTR lpszResourceName);
パラメーター
lpszResourceName
このウィンドウの目的の動的レイアウト情報が含まれているリソースの名前。
戻り値
正常終了した場合は 0 以外を返します。 エラーが発生した場合は 0 です。
注釈
このメソッドを直接呼び出さないでください。
CWnd::LockWindowUpdate
指定されたウィンドウでの描画を無効にします。
BOOL LockWindowUpdate();
戻り値
正常終了した場合は 0 以外を返します。 エラーが発生した場合、または関数を使用して別のウィンドウを LockWindowUpdate
ロックした場合は 0 です。
注釈
ロックされたウィンドウは移動できません。 一度にロックできるウィンドウは 1 つだけです。 で LockWindowUpdate
ロックされているウィンドウのロックを解除するには、 を呼び出します UnlockWindowUpdate
。
ロックされたウィンドウ (またはロックされた子ウィンドウ) を持つアプリケーションが 、GetDCEx
、または BeginPaint
Windows 関数をGetDC
呼び出すと、呼び出された関数は、可視領域が空のデバイス コンテキストを返します。 これは、アプリケーションがメンバー関数を呼び出してウィンドウのロックを UnlockWindowUpdate
解除するまで発生します。
ウィンドウの更新がロックされている間、システムは、ロックされたウィンドウに関連付けられているデバイス コンテキストに対する描画操作の外接する四角形を追跡します。 描画を再度有効にすると、ロックされたウィンドウとその子ウィンドウでこの外接する四角形が無効になり、最終的 WM_PAINT
なメッセージが強制的に画面を更新します。 ウィンドウの更新がロックされている間に図面が発生しなかった場合、領域は無効になりません。
メンバー関数は LockWindowUpdate
、指定されたウィンドウを非表示にせず、スタイル ビットを WS_VISIBLE
クリアしません。
CWnd::m_hWnd
この CWnd
にアタッチされている Windows ウィンドウのハンドル。
HWND m_hWnd;
注釈
m_hWnd
データ メンバーは、 型のパブリック変数ですHWND
。
CWnd::MapWindowPoints
複数の点を CWnd
の座標空間から他のウィンドウの座標空間へ変換 (マップ) します。
void MapWindowPoints(
CWnd* pwndTo,
LPRECT lpRect) const;
void MapWindowPoints(
CWnd* pwndTo,
LPPOINT lpPoint,
UINT nCount) const;
パラメーター
pwndTo
ポイントが変換されるウィンドウを識別します。 このパラメーターが の NULL
場合、ポイントは画面座標に変換されます。
lpRect
ポイントを変換する四角形を指定します。 この関数の最初のバージョンは、Windows 3.1 以降でのみ使用できます。
lpPoint
変換するポイントのPOINT
セットを含む構造体の配列へのポインター。
nCount
がlpPoint
指す配列内の構造体のPOINT
数を指定します。
CWnd::MessageBox
アプリケーションから提供されたメッセージとキャプションに加えて、メッセージ ボックスのスタイル の一覧で説明されている定義済みのアイコンと押しボタンの組み合わせを含むウィンドウを作成して表示します。
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK);
パラメーター
lpszText
表示するメッセージを CString
含むオブジェクトまたは null で終わる文字列を指します。
lpszCaption
メッセージ ボックスキャプションに CString
使用するオブジェクトまたは null で終わる文字列を指します。 が NULL
の場合lpszCaption
、既定のキャプション "Error" が使用されます。
nType
メッセージ ボックスの内容と動作を指定します。
戻り値
このメソッドは、 MessageBox
Windows SDK で定義されている 関数を利用します。 このメソッドは、この関数を呼び出した結果を返します。
注釈
このメンバー関数の代わりにグローバル関数 AfxMessageBox
を使用して、アプリケーションにメッセージ ボックスを実装します。
メッセージ ボックスで使用できるさまざまなシステム アイコンを次に示します。
アイコン | マクロ |
---|---|
![]() |
MB_ICONHAND 、MB_ICONSTOP 、MB_ICONERROR |
![]() |
MB_ICONQUESTION |
![]() |
MB_ICONEXCLAMATIONとMB_ICONWARNING |
![]() |
MB_ICONASTERISKとMB_ICONINFORMATION |
例
void CMainFrame::OnDisplayErrorMessage()
{
// This displays a message box with the title "Error"
// and the message "Help, Something went wrong."
// The error icon is displayed in the message box, along with
// an OK button.
MessageBox(_T("Help, Something went wrong."), _T("Error"),
MB_ICONERROR | MB_OK);
}
CWnd::ModifyStyle
ウィンドウのスタイルを変更するには、このメンバー関数を呼び出します。
BOOL ModifyStyle(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
パラメーター
dwRemove
スタイルの変更中に削除するウィンドウ スタイルを指定します。
dwAdd
スタイルの変更中に追加するウィンドウ スタイルを指定します。
nFlags
に渡される SetWindowPos
フラグ。呼び出す必要がない場合 SetWindowPos
は 0。 既定値は 0 です。 プリセット フラグの一覧については、「解説」セクションを参照してください。
戻り値
スタイルが正常に変更された場合は 0 以外。それ以外の場合は 0。
注釈
追加または削除するスタイルは、ビットごとの OR (|
) 演算子を使用して組み合わせることができます。 使用可能なウィンドウ スタイルの詳細については、「 ウィンドウ スタイル 」および CreateWindow
「Windows SDK」のトピックを参照してください。
が 0 以外の場合 nFlags
は、 ModifyStyle
Windows API 関数 SetWindowPos
を呼び出し、次の 4 つのプリセット フラグと組み合わせて nFlags
ウィンドウを再描画します。
SWP_NOSIZE
現在のサイズを保持します。SWP_NOMOVE
現在の位置を保持します。SWP_NOZORDER
現在の Z オーダーを保持します。SWP_NOACTIVATE
ウィンドウをアクティブにしません。
ウィンドウの拡張スタイルを変更するには、「」を参照してください ModifyStyleEx
。
注意
特定のコントロールの一部のスタイル ( ES_READONLY
編集コントロールのスタイルなど) ModifyStyle
では、コントロールが特別な内部処理を実行する必要があるため、スタイルが正しく変更されない場合があります。 このような場合は、スタイルを変更するための対応するメッセージが使用可能になります ( EM_SETREADONLY
前述の例では)。
例
// This example adds the WS_CLIPCHILDREN style to the window.
// No Styles are removed from the window.
void CMyView::OnInitialUpdate()
{
CView::OnInitialUpdate();
ModifyStyle(0, WS_CLIPCHILDREN);
}
CWnd::ModifyStyleEx
ウィンドウの拡張スタイルを変更するには、このメンバー関数を呼び出します。
BOOL ModifyStyleEx(
DWORD dwRemove,
DWORD dwAdd,
UINT nFlags = 0);
パラメーター
dwRemove
スタイルの変更中に削除する拡張スタイルを指定します。
dwAdd
スタイルの変更中に追加する拡張スタイルを指定します。
nFlags
に渡される SetWindowPos
フラグ。呼び出す必要がない場合 SetWindowPos
は 0。 既定値は 0 です。 プリセット フラグの一覧については、「解説」セクションを参照してください。
戻り値
スタイルが正常に変更された場合は 0 以外。それ以外の場合は 0。
注釈
追加または削除するスタイルは、ビットごとの OR (|
) 演算子を使用して組み合わせることができます。 使用可能 な拡張スタイル の詳細については、この書籍および CreateWindowEx
Windows SDK の拡張ウィンドウ スタイルに関するトピックを参照してください。
が 0 以外の場合 nFlags
は、 ModifyStyleEx
Windows API 関数 SetWindowPos
を呼び出し、次の 4 つのプリセット フラグと組み合わせて nFlags
ウィンドウを再描画します。
SWP_NOSIZE
現在のサイズを保持します。SWP_NOMOVE
現在の位置を保持します。SWP_NOZORDER
現在の Z オーダーを保持します。SWP_NOACTIVATE
ウィンドウをアクティブにしません。
通常のウィンドウ スタイルを使用してウィンドウを変更するには、「」を参照してください ModifyStyle
。
例
// This example would make the dialog box transparent by
// changing the dialog window's extended styles.
int CAboutDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
ModifyStyleEx(0, WS_EX_TRANSPARENT);
return 0;
}
CWnd::MoveWindow
位置と寸法を変更します。
void MoveWindow(
int x,
int y,
int nWidth,
int nHeight,
BOOL bRepaint = TRUE);
void MoveWindow(
LPCRECT lpRect,
BOOL bRepaint = TRUE);
パラメーター
x
の左側の新しい位置を指定します CWnd
。
y
の先頭の新しい位置を指定します CWnd
。
nWidth
の新しい幅を指定します CWnd
。
nHeight
の新しい高さを指定します CWnd
。
bRepaint
を再描画するかどうかを CWnd
指定します。 のCWnd
場合TRUE
は、WM_PAINT
通常どおりにメッセージ ハンドラーでメッセージをOnPaint
受信します。 このパラメーターが の場合、 FALSE
いかなる種類の再描画も行われません。 これは、クライアント領域、クライアント以外の領域 (タイトルとスクロール バーを含む)、および の移動の結果として発見された親ウィンドウの任意の CWnd
部分に適用されます。 このパラメーターが の場合、アプリケーションは FALSE
、再描画する必要がある および 親ウィンドウの CWnd
部分を明示的に無効化または再描画する必要があります。
lpRect
CRect
新しいサイズと位置を指定するオブジェクトまたはRECT
構造体。
注釈
最上位レベル CWnd
のオブジェクトの場合、 x
パラメーターと y
パラメーターは画面の左上隅を基準にしています。 子 CWnd
オブジェクトの場合、親ウィンドウのクライアント領域の左上隅を基準にした相対オブジェクトです。
関数は MoveWindow
メッセージを送信します WM_GETMINMAXINFO
。 このメッセージを処理すると、 CWnd
可能な限り最大および最小のウィンドウの既定値を変更できます。 メンバー関数のパラメーターがこれらの値を MoveWindow
超える場合、値はハンドラー内の最小値または最大値に WM_GETMINMAXINFO
置き換えることができます。
例
CWnd::ClientToScreen
の例を参照してください。
CWnd::NotifyWinEvent
定義済みイベントが発生したことをシステムに通知します。 クライアント アプリケーションがイベントのフック関数を登録している場合、システムはクライアントのフック関数を呼び出します。
void NotifyWinEvent(
DWORD event,
LONG idObjectType,
LONG idObject);
パラメーター
event
発生したイベントを指定します。 この値は 、イベント定数のいずれかである必要があります。
idObjectType
イベントを生成したオブジェクトの種類を識別します。 この値は、定義済みの オブジェクト識別子 またはカスタム オブジェクト ID 値のいずれかです。
idObject
イベントがオブジェクトによって生成されたか、オブジェクトの子要素によって生成されたかを識別します。 この値が の CHILDID_SELF
場合、イベントはオブジェクト自体によって生成されました。 そうでない場合、この値はイベントを生成した要素の子 ID です。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 NotifyWinEvent
の機能をエミュレートします。
CWnd::OnActivate
フレームワークは、オブジェクトがアクティブ化または非アクティブ化されるときに CWnd
、このメンバー関数を呼び出します。
afx_msg void OnActivate(
UINT nState,
CWnd* pWndOther,
BOOL bMinimized);
パラメーター
nState
CWnd
がアクティブ化または非アクティブ化されているかどうかが示されます。 次のいずれかの値を指定できます。
WA_INACTIVE
ウィンドウが非アクティブ化されています。WA_ACTIVE
ウィンドウは、マウス クリック以外の方法でアクティブ化されています (たとえば、キーボード インターフェイスを使用してウィンドウを選択します)。WA_CLICKACTIVE
ウィンドウはマウス クリックでアクティブ化されています。
pWndOther
アクティブ化または非アクティブ化されている CWnd
へのポインター。 ポインターには を指定 NULL
でき、一時的な場合もあります。
bMinimized
アクティブ化または非アクティブ化されている CWnd
の最小化された状態が示されます。 の TRUE
値は、ウィンドウが最小化されていることを示します。
のCWnd
場合TRUE
はアクティブ化されます。それ以外の場合は非アクティブ化されます。
注釈
オブジェクトが CWnd
マウス クリックでアクティブ化されると、メンバー関数呼び出しも受け取ります OnMouseActivate
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnActivateApp
フレームワークは、アクティブ化されているタスクのすべての最上位ウィンドウと、非アクティブ化されているタスクのすべての最上位ウィンドウに対して、このメンバー関数を呼び出します。
afx_msg void OnActivateApp(
BOOL bActive,
DWORD dwThreadID);
パラメーター
bActive
CWnd
がアクティブ化または非アクティブ化されているかどうかが示されます。 TRUE
CWnd
は、 がアクティブ化されていることを意味します。 FALSE
CWnd
は非アクティブ化されていることを意味します。
dwThreadID
スレッド ID の値を指定します。 が のdwThreadID
場合bActive
はTRUE
、非アクティブ化されている を所有するスレッドをCWnd
識別します。 が のdwThreadID
場合bActive
はFALSE
、アクティブ化されている を所有するスレッドをCWnd
識別します。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnAmbientProperty
フレームワークは、OLE コントロールを含むウィンドウからアンビエント プロパティ値を取得するために、このメンバー関数を呼び出します。
virtual BOOL OnAmbientProperty(
COleControlSite* pSite,
DISPID dispid,
VARIANT* pvar);
パラメーター
pSite
アンビエント プロパティを要求したコントロールのサイトへのポインター。
dispid
要求されたアンビエント プロパティのディスパッチ ID。
pvar
アンビエント プロパティの値が返される呼び出し元によって割り当てられた VARIANT
構造体へのポインター。
戻り値
TRUE
アンビエント プロパティがサポートされている場合は 。 FALSE
そうでなければ。
注釈
OLE コントロール コンテナーによって返される既定のアンビエント プロパティ値をコントロールに変更するには、この関数をオーバーライドします。 オーバーライドする関数によって処理されないアンビエント プロパティ要求は、基底クラスの実装に転送する必要があります。
CWnd::OnAppCommand
フレームワークは、ユーザーがアプリケーション コマンド イベントを生成するときに、このメンバー関数を呼び出します。 このようなイベントは、ユーザーがアプリケーション コマンド ボタンをクリックするか、アプリケーション コマンド キーを入力したときに発生します。
afx_msg void OnAppCommand(
CWnd* pWnd,
UINT nCmd,
UINT nDevice,
UINT nKey);
パラメーター
pWnd
[入力]ユーザーがコマンド ボタンを CWnd
クリックしたか、コマンド キーを押したウィンドウを表す オブジェクトへのポインター。 このウィンドウには、メッセージを受信するウィンドウの子ウィンドウを指定できます。
nCmd
[入力]アプリケーション コマンドを示します。 使用可能な値の一覧については、 の パラメーターWM_APPCOMMAND
の cmd
セクションにあるコマンドをlParam
参照してください。
nDevice
[入力]入力イベントを生成した入力デバイス。 使用可能な値の一覧については、 の パラメーターWM_APPCOMMAND
の uDevice
セクションにあるデバイスをlParam
参照してください。
nKey
[入力]Ctrl キーやマウスの左ボタンなど、ダウンしている仮想キーを示します。 使用可能な値の一覧については、 の パラメーターWM_APPCOMMAND
の dwKeys
セクションにあるキーをlParam
参照してください。 詳細については、「 マウス入力について」の「メッセージ パラメーター」小見出しを参照してください。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_APPCOMMAND
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnAskCbFormatName
フレームワークは、クリップボードに形式のデータ ハンドル CF_OWNERDISPLAY
が含まれている場合 (つまり、クリップボードの所有者がクリップボードの内容を表示する場合) に、このメンバー関数を呼び出します。
afx_msg void OnAskCbFormatName(
UINT nMaxCount,
LPTSTR lpszString);
パラメーター
nMaxCount
コピーする最大バイト数を指定します。
lpszString
形式名のコピーが格納されるバッファーを指します。
注釈
クリップボードの所有者は、その形式の名前を指定する必要があります。
このメンバー関数をオーバーライドし、指定された最大バイト数を CF_OWNERDISPLAY
超えないで、指定したバッファーに形式の名前をコピーします。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnCancelMode
フレームワークは、このメンバー関数を呼び出して、内部モードを取り消すよう通知 CWnd
します。
afx_msg void OnCancelMode();
注釈
オブジェクトに CWnd
フォーカスがある場合、ダイアログ ボックスまたはメッセージ ボックスが表示されるときに、その OnCancelMode
メンバー関数が呼び出されます。 これにより、 CWnd
マウス キャプチャなどのモードを取り消す機会が与えられます。
既定の実装では、Windows 関数を呼び出して応答します ReleaseCapture
。 派生クラスでこのメンバー関数をオーバーライドして、他のモードを処理します。
CWnd::OnCaptureChanged
フレームワークは、このメンバー関数を呼び出して、マウス キャプチャを失っているウィンドウに通知します。
afx_msg void OnCaptureChanged(CWnd* pWnd);
パラメーター
pWnd
マウス キャプチャを取得するためのウィンドウへのポインター
注釈
ウィンドウは、それ自体を呼び出 ReleaseCapture
す場合でも、このメッセージを受信します。 アプリケーションは、このメッセージに応答してマウス キャプチャを設定しないでください。 このメッセージを受信すると、新しいマウス キャプチャ状態を反映するために、必要に応じてウィンドウ自体を再描画する必要があります。
Windows 関数の詳細については、Windows SDK を ReleaseCapture
参照してください。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnChangeCbChain
フレームワークは、クリップボード ビューアー チェーン内の各ウィンドウに対してこのメンバー関数を呼び出して、ウィンドウがチェーンから削除されていることを通知します。
afx_msg void OnChangeCbChain(
HWND hWndRemove,
HWND hWndAfter);
パラメーター
hWndRemove
クリップボード ビューアー チェーンから削除されるウィンドウ ハンドルを指定します。
hWndAfter
クリップボード ビューアー チェーンから削除されるウィンドウの後に続くウィンドウ ハンドルを指定します。
注釈
呼び出しをOnChangeCbChain
受け取る各CWnd
オブジェクトは、Windows 関数をSendMessage
使用して、クリップボード ビューアー チェーン (によってSetClipboardViewer
返されるハンドル) の次のウィンドウにメッセージを送信WM_CHANGECBCHAIN
する必要があります。 がチェーン内の次のウィンドウの場合 hWndRemove
、 で hWndAfter
指定されたウィンドウが次のウィンドウになり、クリップボード メッセージが渡されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnChangeUIState
ユーザー インターフェイス (UI) 状態を変更する必要があるときに呼び出されます。
afx_msg void OnChangeUIState(
UINT nAction,
UINT nUIElement);
パラメーター
nAction
実行するアクションを指定します。 値は、次のいずれかです。
UIS_CLEAR
UI 状態要素 (でnUIElement
指定) は非表示にする必要があります。UIS_INITIALIZE
UI 状態要素 (でnUIElement
指定) は、最後の入力イベントに基づいて変更する必要があります。 詳細については、 の 「解説 」セクションWM_CHANGEUISTATE
を参照してください。UIS_SET
UI 状態要素 (でnUIElement
指定) を表示する必要があります。
nUIElement
影響を受ける UI 状態要素またはコントロールのスタイルを指定します。 値は、次のいずれかです。
UISF_HIDEACCEL
キーボード アクセラレータ。UISF_HIDEFOCUS
フォーカス インジケーター。UISF_ACTIVE
Windows XP: コントロールは、アクティブなコントロールに使用されるスタイルで描画する必要があります。
注釈
このメンバー関数は、Windows SDK で説明されているように、メッセージの WM_CHANGEUISTATE
機能をエミュレートします。
CWnd::OnChar
フレームワークは、キーストロークが非システム文字に変換されるときに、このメンバー関数を呼び出します。
afx_msg void OnChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
パラメーター
nChar
キーの文字コード値を格納します。
nRepCnt
ユーザーがキーを押したときにキーストロークが繰り返される回数である繰り返しカウントが含まれます。
nFlags
次の一覧に示すように、スキャン コード、キー遷移コード、以前のキー状態、コンテキスト コードが含まれます。
値 | 説明 |
---|---|
0-15 | 繰り返し数を指定します。 値は、ユーザーがキーを押した結果としてキーストロークが繰り返される回数です。 |
16-23 | スキャン コードを指定します。 値は、元の機器メーカー (OEM) によって異なります |
24 | 拡張キー (拡張 101 キーまたは 102 キー キーボードに表示される右側の Alt キーや Ctrl キーなど) を指定します。 拡張キーの場合、値は 1 です。それ以外の場合は 0 です。 |
25-28 | Windows によって内部的に使用されます。 |
29 | コンテキスト コードを指定します。 Alt キーを押しながらキーを押すと、値は 1 になります。それ以外の場合、値は 0 です。 |
30 | 以前のキーの状態を指定します。 メッセージが送信される前にキーがダウンしている場合は 1、キーが稼働している場合は 0 です。 |
31 | 遷移状態を指定します。 キーが解放されている場合は 1、キーが押されている場合は 0 です。 |
注釈
この関数は、メンバー関数の OnKeyUp
前とメンバー関数の呼び出し後に OnKeyDown
呼び出されます。 OnChar
には、押すか離されているキーボード キーの値が含まれます。
押されたキーと生成された呼び出し OnChar
の間に一対一の対応が必ずしも存在するとは限らないため、 の nFlags
情報は一般にアプリケーションには役立ちません。 の nFlags
情報は、 の呼び出しの OnKeyUp
前にあるメンバー関数またはメンバー関数の OnKeyDown
最新の呼び出し OnChar
にのみ適用されます。
IBM Enhanced 101 キーおよび 102 キー・キーボードの場合、拡張キーはキーボードのメイン・セクションで右 ALT キーと右 Ctrl キーです。テンキーの左側にあるクラスター内の INS、DEL、HOME、END、PAGE UP、PAGE DOWN、および方向キー。と、テンキーのスラッシュ (/) キーと ENTER キー。 他の一部のキーボードでは、 で nFlags
拡張キー ビットがサポートされている場合があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnCharToItem
スタイルを持つリスト ボックスが、メッセージに LBS_WANTKEYBOARDINPUT
応答して WM_CHARTOITEM
所有者にメッセージを WM_CHAR
送信するときに呼び出されます。
afx_msg int OnCharToItem(
UINT nChar,
CListBox* pListBox,
UINT nIndex);
パラメーター
nChar
ユーザーが押すキーの値を指定します。
pListBox
リスト ボックスへのポインターを指定します。 一時的な場合があります。
nIndex
現在のキャレット位置を指定します。
戻り値
フレームワークは、このメンバー関数を呼び出して、アプリケーションが呼び出しに応答して実行したアクションを指定します。 戻り値 -2 は、アプリケーションが項目の選択のすべての側面を処理し、リスト ボックスによるそれ以上のアクションを必要としなかったことを示します。 戻り値 -1 は、キーストロークに応じてリスト ボックスが既定のアクションを実行する必要があることを示します。 戻り値 0 以上は、リスト ボックス内の項目の 0 から始まるインデックスを指定し、リスト ボックスが指定された項目に対してキーストロークの既定のアクションを実行する必要があることを示します。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnChildActivate
オブジェクトが CWnd
マルチ ドキュメント インターフェイス (MDI) の子ウィンドウである場合、 OnChildActivate
ユーザーがウィンドウのタイトル バーをクリックしたとき、またはウィンドウがアクティブ化、移動、またはサイズ変更されたときに、フレームワークによって呼び出されます。
afx_msg void OnChildActivate();
CWnd::OnChildNotify
このメンバー関数は、このウィンドウに適用される通知メッセージを受信すると、このウィンドウの親ウィンドウによって呼び出されます。
virtual BOOL OnChildNotify(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
パラメーター
message
親ウィンドウに送信される Windows メッセージ番号。
wParam
メッセージに関連付けられている wparam 。
lParam
メッセージに関連付けられている lparam 。
pLResult
親のウィンドウ プロシージャから返される値へのポインター。 戻り値が予期されない場合、このポインターは になります NULL
。
戻り値
このウィンドウが親に送信されたメッセージを処理する場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数を直接呼び出すことはありません。
このメンバー関数の既定の実装では 0 が返されます。これは、親がメッセージを処理する必要があることを意味します。
コントロールが通知メッセージに応答する方法を拡張するには、このメンバー関数をオーバーライドします。
CWnd::OnClipboardUpdate
クリップボードの内容が変更されると、フレームワークはこのメンバー関数を呼び出します。
afx_msg void OnClipboardUpdate();
CWnd::OnClose
フレームワークは、 または アプリケーションが終了することを示す CWnd
シグナルとして、このメンバー関数を呼び出します。
afx_msg void OnClose();
注釈
既定の実装では、 が呼び出されます DestroyWindow
。
CWnd::OnColorizationColorChanged
フレームワークは、クライアント以外の領域のレンダリング ポリシーが変更されたときに、このメンバーを呼び出します。
afx_msg void OnColorizationColorChanged(
DWORD dwColorizationColor,
BOOL bOpacity);
パラメーター
dwColorizationColor
[入力]新しい色分け色を指定します。 色の形式は 0xAARRGGBB 形式の 16 進数で、4 つのコンポーネントのそれぞれが0x00から0xFFまでの範囲です。 AA 成分はアルファ値、RR は赤、GG は緑、BB は青です。
bOpacity
[入力] TRUE
新しい色が不透明度とブレンドされている場合は 。 FALSE
そうでない場合は 。
注釈
このメソッドは、Windows SDK で説明されている通知メッセージを受け取ります WM_DWMNCRENDERINGCHANGED
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnCommand
フレームワークは、ユーザーがメニューから項目を選択したとき、子コントロールが通知メッセージを送信するとき、またはアクセラレータキーストロークが変換されたときに、このメンバー関数を呼び出します。
virtual BOOL OnCommand(
WPARAM wParam,
LPARAM lParam);
パラメーター
wParam
の下位ワード wParam
は、メニュー項目、コントロール、またはアクセラレータのコマンド ID を識別します。 の上位ワード wParam
は、メッセージがコントロールからの場合に通知メッセージを指定します。 メッセージがアクセラレータからの場合、上位ワードは 1 です。 メッセージがメニューの場合、上位ワードは 0 です。
lParam
メッセージがコントロールからの場合にメッセージを送信するコントロールを識別します。 それ以外の場合、 lParam
は 0 です。
戻り値
このメッセージを処理すると、アプリケーションは 0 以外の値を返します。それ以外の場合は 0。
注釈
OnCommand
は、制御通知と ON_COMMAND
エントリのメッセージ マップを処理し、適切なメンバー関数を呼び出します。
メッセージを処理するには、派生クラスでこのメンバー関数を WM_COMMAND
オーバーライドします。 オーバーライドは、基底クラス OnCommand
が呼び出されない限り、メッセージ マップを処理しません。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnCompacting
フレームワークは、30 秒から 60 秒の間隔でシステム時間の 12.5% 以上がメモリの圧縮に費やされていることを Windows が検出すると、すべての最上位ウィンドウに対してこのメンバー関数を呼び出します。
afx_msg void OnCompacting(UINT nCpuTime);
パラメーター
nCpuTime
Windows によるメモリの圧縮に現在費やされている CPU 時間と、他の操作の実行に費やされた CPU 時間の比率を指定します。 たとえば、8000h は、メモリの圧縮に費やされた CPU 時間の 50% を表します。
注釈
これは、システム メモリが不足していることを示します。
オブジェクトは、この呼び出しを CWnd
受け取ると、アプリケーションの現在のアクティビティ レベルと Windows で実行されているアプリケーションの合計数を考慮して、できるだけ多くのメモリを解放する必要があります。 アプリケーションは Windows 関数を呼び出して、実行されているアプリケーションの数を確認できます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnCompareItem
フレームワークは、このメンバー関数を呼び出して、子並べ替えられた所有者描画コンボ ボックスまたはリスト ボックス内の新しい項目の相対位置を指定します。
afx_msg int OnCompareItem(
int nIDCtl,
LPCOMPAREITEMSTRUCT lpCompareItemStruct);
パラメーター
nIDCtl
メッセージを送信したコントロールの WM_COMPAREITEM
識別子。
lpCompareItemStruct
コンボまたはリスト ボックス内の 2 つの項目の識別子とアプリケーションが提供するデータを含むデータ構造への COMPAREITEMSTRUCT
長いポインターが含まれます。
戻り値
2 つの項目の相対位置を示します。 次のいずれかの値を指定できます。
値 | 説明 |
---|---|
-1 | 項目 1 は項目 2 より前に並べ替えられます。 |
0 | 項目 1 と項目 2 は同じように並べ替えられます。 |
1 | 項目 1 は項目 2 の後に並べ替えられます。 |
注釈
または スタイルを使用してCBS_SORT
LBS_SORT
コンボ ボックスまたはリスト ボックスが作成された場合、アプリケーションが新しい項目を追加するたびに、コンボ ボックスまたはリスト ボックスの所有者WM_COMPAREITEM
にメッセージが送信されます。
コンボ ボックスまたはリスト ボックス内の 2 つの項目は、 がlpCompareItemStruct
指す構造でCOMPAREITEMSTRUCT
改革されます。 OnCompareItem
は、もう一方の項目の前に表示する項目を示す値を返す必要があります。 通常、Windows では、新しい項目の正確な位置が決定されるまで、この呼び出しが複数回行われます。
構造体のメンバーが hwndItem
COMPAREITEMSTRUCT
または CComboBox
オブジェクトにCListBox
属している場合は、CompareItem
適切なクラスの仮想関数が呼び出されます。 派生クラスまたは CComboBox
クラスで または CListBox::CompareItem
をCListBox
オーバーライドCComboBox::CompareItem
して、項目の比較を行います。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnCompositionChanged
デスクトップ ウィンドウ マネージャー (DWM) コンポジションが有効または無効になっている場合、フレームワークはすべての最上位ウィンドウに対してこのメンバー関数を呼び出します。
afx_msg void OnCompositionChanged();
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_DWMCOMPOSITIONCHANGED
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnContextMenu
ユーザーがウィンドウ内のマウスの右ボタン (右クリック) をクリックしたときに、フレームワークによって呼び出されます。
afx_msg void OnContextMenu(
CWnd* pWnd,
CPoint pos);
パラメーター
pWnd
ユーザーがマウスを右クリックしたウィンドウを処理します。 メッセージを受信するウィンドウの子ウィンドウを指定できます。 このメッセージの処理の詳細については、「解説」セクションを参照してください。
pos
マウス クリック時のカーソルの位置 (画面座標)。
注釈
このメッセージは、 を使用して TrackPopupMenu
コンテキスト メニューを表示することで処理できます。
コンテキスト メニューを表示しない場合は、このメッセージを関数に渡す DefWindowProc
必要があります。 ウィンドウが子ウィンドウの場合は、 DefWindowProc
親にメッセージを送信します。 それ以外の場合は、 DefWindowProc
指定した位置がウィンドウのキャプションにある場合は、既定のコンテキスト メニューが表示されます。
CWnd::OnCopyData
このメンバー関数は、あるアプリケーションから別のアプリケーションにデータをコピーするためにフレームワークによって呼び出されます。
afx_msg BOOL OnCopyData(
CWnd* pWnd,
COPYDATASTRUCT* pCopyDataStruct);
パラメーター
pWnd
データを CWnd
送信しているオブジェクトへのポインター。
pCopyDataStruct
送信されるデータを COPYDATASTRUCT
含む構造体へのポインター。
戻り値
受信アプリケーションが TRUE
データを正常に受け入れた場合は を返します。 それ以外の場合、FALSE
を返します。
注釈
渡されるデータには、データを受け取るアプリケーションからアクセスできないオブジェクトへのポインターやその他の参照を含めてはなりません。
データのコピー中は、送信プロセスの別のスレッドで変更することはできません。
受信アプリケーションでは、データの読み取り専用を考慮する必要があります。 パラメーター pCopyDataStruct
によって指される構造体は、データの転送中にのみ有効です。ただし、受信側のアプリケーションは、構造体に関連付けられているメモリを解放しないでください。
この関数が戻った後に受信側のアプリケーションがデータにアクセスする必要がある場合は、受信したデータをローカル バッファーにコピーする必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnCreate
フレームワークは、アプリケーションが または CreateEx
メンバー関数を呼び出して Windows ウィンドウの作成を要求すると、このメンバー関数をCreate
呼び出します。
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
パラメーター
lpCreateStruct
作成される CREATESTRUCT
オブジェクトに関する情報を含む構造体を CWnd
指します。
戻り値
OnCreate
オブジェクトの CWnd
作成を続行するには、0 を返す必要があります。 アプリケーションから -1 が返された場合、ウィンドウは破棄されます。
注釈
オブジェクトは CWnd
、ウィンドウが作成された後、表示される前にこの呼び出しを受け取ります。 OnCreate
は、 または CreateEx
メンバー関数がCreate
返される前に呼び出されます。
派生クラスの必要な初期化を実行するには、このメンバー関数をオーバーライドします。
構造体には CREATESTRUCT
、ウィンドウの作成に使用されるパラメーターのコピーが含まれています。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnCtlColor
フレームワークは、子コントロールが描画されるときに、このメンバー関数を呼び出します。
afx_msg HBRUSH OnCtlColor(
CDC* pDC,
CWnd* pWnd,
UINT nCtlColor);
パラメーター
pDC
子ウィンドウの表示コンテキストへのポインターを格納します。 一時的な可能性があります。
pWnd
色を求めるコントロールへのポインターが含まれます。 一時的な可能性があります。
nCtlColor
コントロールの種類を指定する、次のいずれかの値が含まれます。
CTLCOLOR_BTN
ボタン コントロールCTLCOLOR_DLG
ダイアログ ボックスCTLCOLOR_EDIT
コントロールの編集CTLCOLOR_LISTBOX
リスト ボックス コントロールCTLCOLOR_MSGBOX
メッセージ ボックスCTLCOLOR_SCROLLBAR
スクロール バー コントロールCTLCOLOR_STATIC
静的コントロール
戻り値
OnCtlColor
は、コントロールの背景の描画に使用されるブラシへのハンドルを返す必要があります。
注釈
ほとんどのコントロールは、正しい色を使用してコントロールを描画するための を準備 pDC
するために、親 (通常はダイアログ ボックス) にこのメッセージを送信します。
テキストの色を変更するには、目的の SetTextColor
赤、緑、青 (RGB) の値を使用してメンバー関数を呼び出します。
1 行の編集コントロールの背景色を変更するには、 と CTLCOLOR_MSGBOX
の両方のメッセージ コードでブラシ ハンドルをCTLCOLOR_EDIT
設定し、コードに応答して 関数をCTLCOLOR_EDIT
呼び出しますCDC::SetBkColor
。
OnCtlColor
ドロップダウン リスト ボックスは実際にはコンボ ボックスの子であり、ウィンドウの子ではないので、ドロップダウン コンボ ボックスのリスト ボックスに対しては呼び出されません。 ドロップダウン リスト ボックスの色を変更するには、 パラメーターで をチェックCTLCOLOR_LISTBOX
する のOnCtlColor
オーバーライドを使用して をnCtlColor
作成CComboBox
します。 このハンドラーでは、メンバー関数を SetBkColor
使用してテキストの背景色を設定する必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。 ダイアログ クラスに次のメソッドを追加するには、Visual Studio のプロパティ ウィンドウを使用して の WM_CTLCOLOR
メッセージ ハンドラーを追加します。 または、メッセージ マップにエントリを ON_WM_CTLCOLOR()
手動で追加することもできます。
例
// This OnCtlColor handler will change the color of a static control
// with the ID of IDC_MYSTATIC. The code assumes that the CPenWidthsDlg
// class has an initialized and created CBrush member named m_brush.
// The control will be painted with red text and a background
// color of m_brush.
HBRUSH CPenWidthsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
// Call the base class implementation first! Otherwise, it may
// undo what we're trying to accomplish here.
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// Are we painting the IDC_MYSTATIC control? We can use
// CWnd::GetDlgCtrlID() to perform the most efficient test.
if (pWnd->GetDlgCtrlID() == IDC_MYSTATIC)
{
// Set the text color to red
pDC->SetTextColor(RGB(255, 0, 0));
// Set the background mode for text to transparent
// so background will show thru.
pDC->SetBkMode(TRANSPARENT);
// Return handle to our CBrush object
hbr = m_brush;
}
return hbr;
}
CWnd::OnDeadChar
フレームワークは、メンバー関数とメンバー関数が OnKeyUp
呼び出されたときに、このメンバー関数を OnKeyDown
呼び出します。
afx_msg void OnDeadChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
パラメーター
nChar
配信不能キー文字の値を指定します。
nRepCnt
繰り返し数を指定します。
nFlags
次の一覧に示すように、スキャン コード、キー遷移コード、以前のキー状態、コンテキスト コードを指定します。
値 | 説明 |
---|---|
0-7 | スキャン コード (OEM に依存する値)。 上位ワードの下位バイト。 |
8 | 拡張キー。ファンクション キーやテンキーのキー (拡張キーの場合は 1、それ以外の場合は 0)。 |
9-10 | 使用されていません。 |
11-12 | Windows によって内部的に使用されます。 |
13 | コンテキスト コード (Alt キーを押しながら押された場合は 1、それ以外の場合は 0)。 |
14 | 以前のキー状態 (キーが呼び出しの前にダウンしている場合は 1、キーがアップの場合は 0)。 |
15 | 遷移状態 (キーが解放されている場合は 1、キーが押されている場合は 0)。 |
注釈
このメンバー関数を使用して、デッド キーの文字値を指定できます。 デッド キーは、他の文字と組み合わせて複合文字を形成する、ウムラウト (二点) 文字などのキーです。 たとえば、umlaut-O 文字は、デッド キー、umlaut、O キーで構成されます。
アプリケーションでは通常、 を使用 OnDeadChar
して、押された各キーに関するフィードバックをユーザーに提供します。 たとえば、アプリケーションでは、キャレットを移動することなく、現在の文字位置にアクセントを表示できます。
押されたキーと OnDeadChar
呼び出しの間には必ずしも 1 対 1 の対応が存在するとは限らないため、 の nFlags
情報は一般にアプリケーションには役立ちません。 のnFlags
情報は、メンバー関数または呼び出しの前OnDeadChar
にあるOnKeyUp
メンバー関数の最新のOnKeyDown
呼び出しにのみ適用されます。
IBM Enhanced 101 および 102 キーのキーボードの場合、拡張キーはキーボードのメイン セクションで右 Alt キーと右 Ctrl キーです。テンキーの左側にあるクラスター内の INS、DEL、HOME、END、PAGE UP、PAGE DOWN、および方向キー。テンキーのスラッシュ (/) キーと ENTER キーを使用します。 その他の一部のキーボードでは、 で nFlags
拡張キー ビットがサポートされている場合があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnDeleteItem
フレームワークは、このメンバー関数を呼び出して、リスト ボックスまたはコンボ ボックスが破棄されたこと、または 、または CListBox::ResetContent
によってCComboBox::DeleteString
CListBox::DeleteString
CComboBox::ResetContent
項目が削除されたことを所有者に通知します。
afx_msg void OnDeleteItem(
int nIDCtl,
LPDELETEITEMSTRUCT lpDeleteItemStruct);
パラメーター
nIDCtl
メッセージを送信したコントロールの WM_DELETEITEM
識別子。
lpDeleteItemStruct
削除されたリスト ボックスアイテムに関する情報を DELETEITEMSTRUCT
含むデータ構造への長いポインターを指定します。
注釈
構造体のメンバーがhwndItem
DELETEITEMSTRUCT
コンボ ボックスまたはリスト ボックスに属している場合は、DeleteItem
適切なクラスの仮想関数が呼び出されます。 項目固有のデータを DeleteItem
削除するには、適切なコントロールの クラスのメンバー関数をオーバーライドします。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnDestroy
フレームワークは、このメンバー関数を呼び出して、 CWnd
破棄されていることをオブジェクトに通知します。
afx_msg void OnDestroy();
注釈
OnDestroy
は、オブジェクトが CWnd
画面から削除された後に呼び出されます。
OnDestroy
は、破棄される に CWnd
対して最初に呼び出され、 は破棄されるときに の CWnd
子ウィンドウに対して呼び出されます。 実行中にすべての子ウィンドウがまだ存在 OnDestroy
すると想定できます。
CWnd
破棄されるオブジェクトがクリップボード ビューアー チェーン (メンバー関数を呼び出SetClipboardViewer
して設定) の一部である場合、 は、関数CWnd
から戻る前にメンバー関数を呼び出ChangeClipboardChain
して、クリップボード ビューアー チェーンから自身をOnDestroy
削除する必要があります。
CWnd::OnDestroyClipboard
フレームワークは、Windows 関数の呼び出しによってクリップボードが空になったときに、クリップボード所有者に対してこのメンバー関数を EmptyClipboard
呼び出します。
afx_msg void OnDestroyClipboard();
CWnd::OnDeviceChange
フレームワークは、このメンバー関数を呼び出して、デバイスまたはコンピューターのハードウェア構成の変更をアプリケーションまたはデバイス ドライバーに通知します。
afx_msg BOOL OnDeviceChange(
UINT nEventType,
DWORD_PTR dwData);
パラメーター
nEventType
イベントの種類。 使用可能な値の説明については、「解説」セクションを参照してください。
dwData
イベント固有のデータを含む構造体のアドレス。 その意味は、指定されたイベントによって異なります。
注釈
取り出しやロックなどのソフトウェア制御可能な機能を提供するデバイスの場合、オペレーティング システムは通常、アプリケーションとデバイス ドライバーがデバイスの使用を正常に終了できるようにメッセージを送信 DBT_DEVICEREMOVEPENDING
します。
オペレーティング システムがデバイスを強制的に削除すると、その前にメッセージが DBT_DEVICEQUERYREMOVE
送信されないことがあります。
パラメーターには nEvent
、次のいずれかの値を指定できます。
DBT_DEVICEARRIVAL
デバイスが挿入され、使用可能になりました。DBT_DEVICEQUERYREMOVE
デバイスを削除するアクセス許可が要求されます。 どのアプリケーションでも、この要求を拒否し、削除を取り消すことができます。DBT_DEVICEQUERYREMOVEFAILED
デバイスの削除要求が取り消されました。DBT_DEVICEREMOVEPENDING
デバイスが削除されようとしています。 拒否できません。DBT_DEVICEREMOVECOMPLETE
デバイスが削除されました。DBT_DEVICETYPESPECIFIC
デバイス固有のイベント。DBT_CONFIGCHANGED
現在の構成が変更されました。DBT_DEVNODES_CHANGED
デバイス ノードが変更されました。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnDevModeChange
フレームワークは、ユーザーがデバイス モードの設定を変更すると、すべての最上位 CWnd
オブジェクトに対してこのメンバー関数を呼び出します。
afx_msg void OnDevModeChange(LPTSTR lpDeviceName);
パラメーター
lpDeviceName
Windows 初期化ファイルで指定されたデバイス名を指します WIN.INI
。
注釈
メッセージを処理するアプリケーションは WM_DEVMODECHANGE
、デバイス モード設定を再初期化できます。 Windows ExtDeviceMode
関数を使用してデバイス設定を保存および復元するアプリケーションでは、通常、この関数は処理されません。
ユーザーが既定のプリンターを コントロール パネル から変更しても、この関数は呼び出されません。 この場合、 関数が OnWinIniChange
呼び出されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnDrawClipboard
クリップボードの内容が変更されると、フレームワークはクリップボード ビューアー チェーン内の各ウィンドウに対してこのメンバー関数を呼び出します。
afx_msg void OnDrawClipboard();
注釈
メンバー関数を呼び出してクリップボード ビューアー チェーンに参加したアプリケーションのみが、 SetClipboardViewer
この呼び出しに応答する必要があります。
呼び出しを OnDrawClipboard
受け取る各ウィンドウで Windows 関数を SendMessage
呼び出して、クリップボード ビューアー チェーンの次のウィンドウにメッセージを渡す WM_DRAWCLIPBOARD
必要があります。 次のウィンドウのハンドルはメンバー関数によって SetClipboardViewer
返されます。メンバー関数の呼び出しに応答して OnChangeCbChain
変更できます。
CWnd::OnDrawIconicThumbnailOrLivePreview
Windows 7 のタブのサムネイルに表示する、またはアプリケーションのピーク用にクライアントで表示するビットマップを取得する必要があるときに、フレームワークによって呼び出されます。
virtual void OnDrawIconicThumbnailOrLivePreview(
CDC& dc,
CRect rect,
CSize szRequiredThumbnailSize,
BOOL bIsThumbnail,
BOOL& bAlphaChannelSet);
パラメーター
dc
デバイス コンテキストを指定します。
rect
レンダリングする領域の外接する四角形を指定します。
szRequiredThumbnailSize
ターゲットサムネイルのサイズを指定します。 が FALSE
の場合bIsThumbnail
は無視する必要があります。
bIsThumbnail
このメソッドを、アイコンサムネイルまたはライブ プレビュー (ピーク) に対して呼び出すかどうかを指定します。
bAlphaChannelSet
[out]実装で TRUE
で選択されたビットマップのアルファ チャネルを初期化する場合は、 に dc
設定します。
注釈
サムネイルとピークをカスタマイズするために、派生クラスでこのメソッドをオーバーライドし、指定したデバイス コンテキストで描画します。 が のTRUE
szRequiredThumbnailSize
場合bThumbnail
は無視できます。 この場合は、フルサイズのビットマップ (つまり、クライアント領域全体をカバーするビットマップ) を描画する必要があります。 デバイス コンテキスト (dc
) には、選択した 32 ビット ビットマップが付属しています。 既定の実装では、および PRF_NONCLIENT
フラグを使用してこのウィンドウにPRF_CHILDREN
PRF_CLIENT
送信WM_PRINT
されます。
CWnd::OnDrawItem
フレームワークは、コントロールまたはメニューの視覚的な側面が変更されたときに、所有者描画ボタン コントロール、コンボ ボックス コントロール、リスト ボックス コントロール、またはメニューの所有者に対してこのメンバー関数を呼び出します。
afx_msg void OnDrawItem(
int nIDCtl,
LPDRAWITEMSTRUCT lpDrawItemStruct);
パラメーター
nIDCtl
メッセージを送信したコントロールの識別子を WM_DRAWITEM
格納します。 メニューがメッセージを送信した場合、 nIDCtl
には 0 が含まれます。
lpDrawItemStruct
描画する項目と必要な DRAWITEMSTRUCT
描画の種類に関する情報を含むデータ構造への長いポインターを指定します。
注釈
構造体のメンバーは itemAction
、 DRAWITEMSTRUCT
実行する描画操作を定義します。 このメンバーのデータを使用すると、コントロールの所有者は、必要な描画アクションを決定できます。
このメッセージの処理から戻る前に、アプリケーションは構造体のメンバーによって hDC
識別されるデバイス コンテキストが既定の DRAWITEMSTRUCT
状態に復元されるようにする必要があります。
メンバーがhwndItem
、、CMenu
、CListBox
または CComboBox オブジェクトにCButton
属している場合は、DrawItem
適切なクラスの仮想関数が呼び出されます。 DrawItem
適切なコントロールの クラスのメンバー関数をオーバーライドして、項目を描画します。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnDropFiles
フレームワークは、ユーザーがドロップされたファイルの受信者として自身を登録したウィンドウの上にマウスの左ボタンを離すと、このメンバー関数を呼び出します。
afx_msg void OnDropFiles(HDROP hDropInfo);
パラメーター
hDropInfo
ドロップされたファイルを記述する内部データ構造へのポインター。 このハンドルは、、、および Windows 関数によって使用されDragFinish
DragQueryFile
、DragQueryPoint
ドロップされたファイルに関する情報を取得します。
注釈
通常、派生クラスはドロップされたファイルをサポートするように設計され、ウィンドウの構築中にそれ自体が登録されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnEnable
フレームワークは、アプリケーションがオブジェクトの有効な状態を変更すると、このメンバー関数を CWnd
呼び出します。
afx_msg void OnEnable(BOOL bEnable);
パラメーター
bEnable
オブジェクトが有効か無効かを CWnd
指定します。 このパラメーターは、 がTRUE
有効になっている場合CWnd
は です。無効になっている場合CWnd
は ですFALSE
。
注釈
OnEnable
は、メンバー関数が EnableWindow
戻る前に呼び出されますが、ウィンドウが有効な状態 (WS_DISABLED
スタイル ビット) が変更された後に呼び出されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnEndSession
フレームワークは、オブジェクトがメンバー関数呼び出しから 0 以外の CWnd
値を返した後に、このメンバー関数を OnQueryEndSession
呼び出します。
afx_msg void OnEndSession(BOOL bEnding);
パラメーター
bEnding
セッションを終了するかどうかを指定します。 セッションが終了している場合は です。それ以外の場合FALSE
は TRUE
です。
注釈
呼び出しは OnEndSession
、セッションが CWnd
実際に終了しているかどうかをオブジェクトに通知します。
が のTRUE
場合bEnding
、すべてのアプリケーションがこの呼び出しの処理から返された後、Windows はいつでも終了できます。 そのため、アプリケーションで 内 OnEndSession
の終了に必要なすべてのタスクを実行するようにします。
セッションの終了時にメンバー関数または PostQuitMessage
Windows 関数をDestroyWindow
呼び出す必要はありません。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnEnterIdle
フレームワークは、このメンバー関数を呼び出して、モーダル ダイアログ ボックスまたはメニューがアイドル状態になっていることをアプリケーションのメイン ウィンドウ プロシージャに通知します。
afx_msg void OnEnterIdle(
UINT nWhy,
CWnd* pWho);
パラメーター
nWhy
メッセージがダイアログ ボックスの結果か、表示されるメニューかを指定します。 このパラメーターには、次のいずれかの値を指定できます。
MSGF_DIALOGBOX
ダイアログ ボックスが表示されているため、システムはアイドル状態です。MSGF_MENU
メニューが表示されているため、システムはアイドル状態です。
pWho
ダイアログ ボックスへのポインター (が のMSGF_DIALOGBOX
場合nWhy
)、または表示されるメニューを含むウィンドウ (が MSGF_MENU
の場合nWhy
) を指定します。 このポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
モーダル ダイアログ ボックスまたはメニューは、1 つ以上の前のメッセージを処理した後、キューで待機しているメッセージがない場合にアイドル状態になります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnEnterMenuLoop
メニュー モーダル ループが入力されると、フレームワークはこのメンバー関数を呼び出します。
afx_msg void OnEnterMenuLoop(BOOL bIsTrackPopupMenu);
パラメーター
bIsTrackPopupMenu
関連するメニューがポップアップ メニューかどうかを指定します。 関数が成功した場合は 0 以外の値を持ちます。それ以外の場合は 0。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnEnterSizeMove
フレームワークは、影響を受けるウィンドウが移動またはサイズ変更モーダル ループに入った後、このメンバー関数を 1 回呼び出します。
afx_msg void OnEnterSizeMove();
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_ENTERSIZEMOVE
。
ユーザーがウィンドウのタイトル バーまたはサイズ設定の境界線をクリックしたとき、またはウィンドウが関数にCWnd::DefWindowProc
メッセージを渡WM_SYSCOMMAND
し、そのメッセージの wParam パラメーターで または SC_SIZE
を指定SC_MOVE
すると、ウィンドウは移動またはサイズ変更モーダル ループに入ります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnEraseBkgnd
フレームワークは、オブジェクトの背景で消去が CWnd
必要な場合 (サイズ変更時など) に、このメンバー関数を呼び出します。
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
パラメーター
pDC
デバイス コンテキスト オブジェクトを指定します。
戻り値
背景を消去する場合は 0 以外。それ以外の場合は 0。
注釈
これは、塗装のために無効化された領域を準備するために呼び出されます。
既定の実装では、ウィンドウ クラス構造体のメンバーによって指定されたウィンドウ クラスの背景ブラシを hbrBackground
使用して、背景が消去されます。
メンバーが の hbrBackground
場合、 NULL
オーバーライドされた バージョンの は OnEraseBkgnd
背景色を消去する必要があります。 バージョンは、最初にブラシを呼び出UnrealizeObject
してからブラシをCWnd
選択することで、目的のブラシの原点を座標に合わせる必要もあります。
オーバーライドされた OnEraseBkgnd
は、メッセージを処理してバックグラウンドを消去する場合に、 に応答して WM_ERASEBKGND
0 以外の値を返す必要があります。これは、それ以上消去する必要がないことを示します。 0 を返した場合、ウィンドウは消去する必要があるとしてマークされたままになります。 (通常、これは 構造体のfErase
PAINTSTRUCT
メンバーが であることをTRUE
意味します)。
Windows では、バックグラウンドがマッピング モードで MM_TEXT
計算されていることを前提としています。 デバイス コンテキストが他のマッピング モードを使用している場合、消去された領域がクライアント領域の可視部分内にない可能性があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnExitMenuLoop
フレームワークは、メニュー モーダル ループが終了したときに、このメンバー関数を呼び出します。
afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu);
パラメーター
bIsTrackPopupMenu
関連するメニューがポップアップ メニューであるかどうかを指定します。 関数が成功した場合は 0 以外の値を持ちます。それ以外の場合は 0。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnExitSizeMove
フレームワークは、影響を受けるウィンドウが移動またはサイズ変更モーダル ループを終了した後、このメンバー関数を 1 回呼び出します。
afx_msg void OnExitSizeMove();
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_EXITSIZEMOVE
。
ウィンドウは、ユーザーがウィンドウのタイトル バーまたはサイズ設定の境界線をクリックしたとき、またはウィンドウが関数wParam
にCWnd::DefWindowProc
メッセージを渡WM_SYSCOMMAND
し、そのメッセージの パラメーターが または SC_SIZE
を指定SC_MOVE
したときに、移動またはサイズ変更モーダル ループに入ります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnFontChange
システム内のすべての最上位ウィンドウは、アプリケーションがフォント リソースのプールを OnFontChange
変更した後、フレームワークから呼び出しを受け取ります。
afx_msg void OnFontChange();
注釈
システムにフォントを追加または削除するアプリケーション (たとえば、 や RemoveFontResource
Windows 関数を使用AddFontResource
) は、すべての最上位ウィンドウにメッセージを送信WM_FONTCHANGE
する必要があります。
このメッセージを送信するには、 パラメーターを SendMessage
に設定して Windows 関数をHWND_BROADCAST
hWnd
使用します。
CWnd::OnGetDlgCode
方向キーおよび Tab キーによる入力そのものをコントロールが処理できるように、そのコントロールに対して呼び出されます。
afx_msg UINT OnGetDlgCode();
戻り値
アプリケーションが処理する入力の種類を示す、次の 1 つ以上の値。
DLGC_BUTTON
ボタン (汎用)。DLGC_DEFPUSHBUTTON
既定の押しボタン。DLGC_HASSETSEL
EM_SETSEL
メッセージ。DLGC_UNDEFPUSHBUTTON
既定のプッシュ ボタン処理はありません。 (アプリケーションでは、 と共DLGC_BUTTON
にこのフラグを使用して、ボタン入力を処理するが、既定のプッシュ ボタン処理をシステムに依存していることを示すことができます。DLGC_RADIOBUTTON
ラジオボタン。DLGC_STATIC
静的コントロール。DLGC_WANTALLKEYS
すべてのキーボード入力。DLGC_WANTARROWS
方向キー。DLGC_WANTCHARS
WM_CHAR
メッセージ。DLGC_WANTMESSAGE
すべてのキーボード入力。 アプリケーションは、このメッセージを コントロールに渡します。DLGC_WANTTAB
TAB キー。
注釈
通常、Windows では、コントロールに対するすべての方向キーと TAB キーの入力が CWnd
処理されます。 を OnGetDlgCode
オーバーライドすることで、コントロールは CWnd
、それ自体を処理する特定の種類の入力を選択できます。
定義済みのコントロール クラスの既定 OnGetDlgCode
の関数は、各クラスに適したコードを返します。
CWnd::OnGetMinMaxInfo
フレームワークは、最大化された位置またはディメンション、または最小または最大の追跡サイズを Windows が認識する必要がある場合に常に、このメンバー関数を呼び出します。
afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
パラメーター
lpMMI
ウィンドウの MINMAXINFO
最大化されたサイズと位置、およびその最小および最大追跡サイズに関する情報を含む構造体を指します。 この構造の詳細については、 構造体を MINMAXINFO
参照してください。
注釈
最大化されたサイズは、境界線が完全に拡張されたときのウィンドウのサイズです。 ウィンドウの最大追跡サイズは、境界線を使用してウィンドウのサイズを設定することで実現できる最大のウィンドウ サイズです。 ウィンドウの最小追跡サイズは、境界線を使用してウィンドウのサイズを設定することで実現できる最小のウィンドウ サイズです。
Windows では、さまざまな位置とディメンションの既定値を指定するポイントの配列が埋め込まれます。 アプリケーションでは、 で OnGetMinMaxInfo
これらの値を変更できます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnHelp
アプリケーション内で F1 ヘルプを (現在のコンテキストを使って) 処理します。
afx_msg void OnHelp();
注釈
詳細については、「 CWinApp::OnHelp
」を参照してください。
CWnd::OnHelpFinder
コマンドと ID_DEFAULT_HELP
コマンドをID_HELP_FINDER
処理します。
afx_msg void OnHelpFinder();
注釈
詳細については、「 CWinApp::OnHelpFinder
」を参照してください。
CWnd::OnHelpIndex
コマンドを ID_HELP_INDEX
処理し、既定のヘルプ トピックを提供します。
afx_msg void OnHelpIndex();
注釈
詳細については、「 CWinApp::OnHelpIndex
」を参照してください。
CWnd::OnHelpInfo
ユーザーが F1 キーを押したときに、フレームワークによって呼び出されます。
afx_msg BOOL OnHelpInfo(HELPINFO* lpHelpInfo);
パラメーター
lpHelpInfo
ヘルプが HELPINFO
要求されるメニュー項目、コントロール、ダイアログ ボックス、またはウィンドウに関する情報を含む構造体へのポインター。
戻り値
TRUE
ウィンドウにキーボード フォーカスがある場合、またはウィンドウ内でメニューがアクティブになっている場合は を返します。 キーボード フォーカスを持つウィンドウがない場合は、 を返します FALSE
。
注釈
F1 キーを押したときにメニューがアクティブになっている場合は、 WM_HELP
メニューに関連付けられているウィンドウに送信されます。それ以外の場合は、 WM_HELP
キーボード フォーカスがあるウィンドウに送信されます。 キーボード フォーカスを持つウィンドウがない場合は、 WM_HELP
現在アクティブなウィンドウに送信されます。
CWnd::OnHelpUsing
ID_HELP_USING
コマンドを処理します。
afx_msg void OnHelpUsing();
注釈
詳細については、「 CWinApp::OnHelpUsing
」を参照してください。
CWnd::OnHotKey
フレームワークは、ユーザーがシステム全体のホット キーを押すと、このメンバー関数を呼び出します。
afx_msg void OnHotKey(
UINT nHotKeyId,
UINT nKey1,
UINT nKey2);
パラメーター
nHotKeyId
[入力]メッセージを生成したホット キーの識別子。 メッセージがシステム定義のホット キーによって生成された場合、このパラメーターは次のいずれかの値になります。
IDHOT_SNAPDESKTOP
- スナップ デスクトップのホット キーが押されました。IDHOT_SNAPWINDOW
- スナップ ウィンドウのホット キーが押されました。
nKey1
[入力]パラメーターで nKey2
指定されたキーと組み合わせて押されたキーを示すフラグのビットごとの組み合わせ (OR)。 次の値を指定できます。
MOD_ALT
- Alt キーが押された。MOD_CONTROL
- Ctrl キーが押された。MOD_SHIFT
- Shift キーが押された。MOD_WIN
- いずれかの WINDOWS キーが押し下げられました。 これらのキーには、Microsoft Windows ロゴのラベルが付いています。
nKey2
[入力] ホットキーの仮想キーコード。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_HOTKEY
。 このメッセージは、ホット キーを登録したスレッドに関連付けられているメッセージ キューの先頭に配置されます。 関数を RegisterHotKey
使用して、システム全体のホット キーを登録します。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnHScroll
フレームワークは、ユーザーがウィンドウの水平スクロール バーをクリックすると、このメンバー関数を呼び出します。
afx_msg void OnHScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar);
パラメーター
nSBCode
ユーザーのスクロール要求を示すスクロール バー コードを指定します。 このパラメーターには、次のいずれかを指定できます。
SB_LEFT
左端までスクロールします。SB_ENDSCROLL
スクロールを終了します。SB_LINELEFT
左にスクロールします。SB_LINERIGHT
右にスクロールします。SB_PAGELEFT
1 ページ左にスクロールします。SB_PAGERIGHT
1 ページ右にスクロールします。SB_RIGHT
右端までスクロールします。SB_THUMBPOSITION
絶対位置までスクロールします。 現在の位置は、 パラメーターによってnPos
指定されます。SB_THUMBTRACK
スクロール ボックスを指定した位置にドラッグします。 現在の位置は、 パラメーターによってnPos
指定されます。
nPos
スクロール バー コードが または SB_THUMBTRACK
の場合は、スクロール ボックスの位置を指定します。それ以外の場合はSB_THUMBPOSITION
使用されません。 最初のスクロール範囲によっては、負の値になる場合があり、 nPos
必要に応じて にキャストする int
必要があります。
pScrollBar
スクロール メッセージがスクロール バー コントロールから送信された場合は、コントロールへのポインターが含まれます。 ユーザーがウィンドウのスクロール バーをクリックした場合、このパラメーターは です NULL
。 ポインターは一時的なものであり、後で使用するために格納しないでください。
注釈
スクロール バー コードは SB_THUMBTRACK
、通常、スクロール ボックスのドラッグ中にフィードバックを提供するアプリケーションで使用されます。
アプリケーションがスクロール バーによって制御される内容をスクロールする場合は、メンバー関数を使用してスクロール ボックスの位置もリセットする SetScrollPos
必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
例
void CMdiView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar)
{
// Get the minimum and maximum scroll-bar positions.
int minpos;
int maxpos;
GetScrollRange(SB_HORZ, &minpos, &maxpos);
maxpos = GetScrollLimit(SB_HORZ);
// Get the current position of scroll box.
int curpos = GetScrollPos(SB_HORZ);
// Determine the new position of scroll box.
switch (nSBCode)
{
case SB_LEFT: // Scroll to far left.
curpos = minpos;
break;
case SB_RIGHT: // Scroll to far right.
curpos = maxpos;
break;
case SB_ENDSCROLL: // End scroll.
break;
case SB_LINELEFT: // Scroll left.
if (curpos > minpos)
curpos--;
break;
case SB_LINERIGHT: // Scroll right.
if (curpos < maxpos)
curpos++;
break;
case SB_PAGELEFT: // Scroll one page left.
{
// Get the page size.
SCROLLINFO info;
GetScrollInfo(SB_HORZ, &info, SIF_ALL);
if (curpos > minpos)
curpos = max(minpos, curpos - (int)info.nPage);
}
break;
case SB_PAGERIGHT: // Scroll one page right.
{
// Get the page size.
SCROLLINFO info;
GetScrollInfo(SB_HORZ, &info, SIF_ALL);
if (curpos < maxpos)
curpos = min(maxpos, curpos + (int)info.nPage);
}
break;
case SB_THUMBPOSITION: // Scroll to absolute position. nPos is the position
curpos = nPos; // of the scroll box at the end of the drag operation.
break;
case SB_THUMBTRACK: // Drag scroll box to specified position. nPos is the
curpos = nPos; // position that the scroll box has been dragged to.
break;
}
// Set the new position of the thumb (scroll box).
SetScrollPos(SB_HORZ, curpos);
CView::OnHScroll(nSBCode, nPos, pScrollBar);
}
CWnd::OnHScrollClipboard
クリップボードの所有者の OnHScrollClipboard
メンバー関数は、クリップボード のデータ CF_OWNERDISPLAY
が形式で、クリップボード ビューアーの水平スクロール バーにイベントがある場合に、クリップボード ビューアーによって呼び出されます。
afx_msg void OnHScrollClipboard(
CWnd* pClipAppWnd,
UINT nSBCode,
UINT nPos);
パラメーター
pClipAppWnd
クリップボード ビューアー ウィンドウへのポインターを指定します。 ポインターは一時的なものであり、後で使用するために格納しないでください。
nSBCode
下位ワードで次のいずれかのスクロール バー コードを指定します。
SB_BOTTOM
右下にスクロールします。SB_ENDSCROLL
スクロールを終了します。SB_LINEDOWN
1 行下にスクロールします。SB_LINEUP
1 行上にスクロールします。SB_PAGEDOWN
1 ページ下にスクロールします。SB_PAGEUP
1 ページ上にスクロールします。SB_THUMBPOSITION
絶対位置までスクロールします。 現在の位置は でnPos
提供されます。SB_TOP
左上までスクロールします。
nPos
スクロール バー コードが の場合はスクロール ボックスの位置を格納します。それ以外の場合は SB_THUMBPOSITION
使用されません。
注釈
所有者はクリップボードイメージをスクロールし、適切なセクションを無効にし、スクロールバーの値を更新する必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnIconEraseBkgnd
アイコンを描画する前にアイコンの背景を塗りつぶす必要がある場合、フレームワークは最小化された (アイコン) CWnd
オブジェクトに対してこのメンバー関数を呼び出します。
afx_msg void OnIconEraseBkgnd(CDC* pDC);
パラメーター
pDC
アイコンのデバイス コンテキスト オブジェクトを指定します。 一時的な場合があり、後で使用するために格納しないでください。
注釈
CWnd
は、ウィンドウの既定の実装に対してクラス アイコンが定義されている場合にのみ、この呼び出しを受け取ります。それ以外の場合 OnEraseBkgnd
は が呼び出されます。
メンバー関数は DefWindowProc
、アイコンの背景に親ウィンドウの背景ブラシを塗りつぶします。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnInitMenu
メニューがアクティブになりようとしているときに、フレームワークはこのメンバー関数を呼び出します。
afx_msg void OnInitMenu(CMenu* pMenu);
パラメーター
pMenu
初期化するメニューを指定します。 一時的な場合があり、後で使用するために格納しないでください。
注釈
OnInitMenu
は、ユーザーがメニュー バーの項目をクリックするか、メニュー キーを押したときに呼び出されます。 メニューが表示される前にメニューを変更するには、このメンバー関数をオーバーライドします。
OnInitMenu
は、メニューが最初にアクセスされたとき (たとえば、ユーザーがメニュー バーの項目をクリックしたときなど) に対して 1 回だけ呼び出されます。 このメソッドでは、メニュー項目に関する情報は提供されません。 ユーザーがメニュー内の項目に移動すると (たとえば、マウスを複数のメニュー項目に移動するなど)、関数は再び呼び出されません。 ユーザーがメニューから終了し (たとえば、アプリケーション クライアント領域をクリックするなど)、後でメニュー バーの項目をクリックすると、関数が再度呼び出されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnInitMenuPopup
フレームワークは、ポップアップ メニューがアクティブになりそうになったときに、このメンバー関数を呼び出します。
afx_msg void OnInitMenuPopup(
CMenu* pPopupMenu,
UINT nIndex,
BOOL bSysMenu);
パラメーター
pPopupMenu
ポップアップ メニューのメニュー オブジェクトを指定します。 一時的な場合があり、後で使用するために保存しないでください。
nIndex
メイン メニューのポップアップ メニューのインデックスを指定します。
bSysMenu
TRUE
ポップアップ メニューが [コントロール] メニューの場合は 。それ以外の場合 FALSE
は 。
注釈
これにより、アプリケーションは、メニュー全体を変更せずに表示される前に、ポップアップ メニューを変更できます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnInputDeviceChange
フレームワークは、I/O デバイスがシステムに追加または削除されたときに、このメンバー関数を呼び出します。
afx_msg void OnInputDeviceChange(unsigned short uFlag);
パラメーター
uFlag
[入力]このフラグには、次の値を含めることができます。
GIDC_ARRIVAL
- 新しいデバイスがシステムに追加されました。GIDC_REMOVAL
- デバイスがシステムから削除されました。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_INPUT_DEVICE_CHANGE
。 は汎用入力デバイス メッセージです。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnInputLangChange
フレームワークは、アプリケーションの入力言語が変更された後、影響を受ける最上位のウィンドウに対してこのメンバーを呼び出します。
afx_msg void OnInputLangChange(
UINT nCharSet,
UINT nLocaleId);
パラメーター
nCharSet
[入力]新しいロケールの文字セット。 詳細については、 構造体の パラメーターをlfCharSet
LOGFONT
参照してください。
nLocaleId
[入力]入力ロケール識別子。 詳細については、「 言語識別子の定数と文字列」を参照してください。
注釈
このメソッドは、Windows SDK で説明されている通知メッセージを受け取ります WM_INPUTLANGCHANGE
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnInputLangChangeRequest
フレームワークは、ユーザーが新しい入力言語を選択したときにフォーカスを持つウィンドウに対してこのメンバーを呼び出します。
afx_msg void OnInputLangChangeRequest(
UINT nFlags,
UINT nLocaleId);
パラメーター
nFlags
[入力]インストールされているロケールの一覧で前または次のロケールから新しいロケールが選択されたか、システム文字セットで新しい入力ロケールのキーボード レイアウトを使用できることを示すフラグのビットごとの (OR) の組み合わせ。 設定可能な値は INPUTLANGCHANGE_BACKWARD
、INPUTLANGCHANGE_FORWARD
、INPUTLANGCHANGE_SYSCHARSET
です。
nLocaleId
[入力]入力ロケール識別子。 詳細については、「 言語識別子の定数と文字列」を参照してください。
注釈
このメソッドは、Windows SDK で説明されている通知メッセージを受け取ります WM_INPUTLANGCHANGEREQUEST
。 このメッセージは、ユーザーがキーボード コントロール パネル アプリケーションで指定されたホットキーまたはシステム タスク バーのインジケーターで新しい入力言語を選択したときに投稿されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnKeyDown
フレームワークは、非システム キーが押されたときにこのメンバー関数を呼び出します。
afx_msg void OnKeyDown(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
パラメーター
nChar
指定されたキーの仮想キー コードを指定します。 標準の仮想キー コードの一覧については、「Winuser.h」を参照してください。
nRepCnt
繰り返しカウント (ユーザーがキーを押した結果としてキーストロークが繰り返される回数)。
nFlags
次の一覧に示すように、スキャン コード、キー遷移コード、以前のキー状態、コンテキスト コードを指定します。
値 | 説明 |
---|---|
0-7 | コードをスキャンする (OEM に依存する値)。 |
8 | 拡張キー (テンキーのファンクション キーやキーなど) (拡張キーの場合は 1)。 |
9-10 | 使用されていません。 |
11-12 | Windows によって内部的に使用されます。 |
13 | コンテキスト コード (Alt キーを押しながら押している場合は 1、それ以外の場合は 0)。 |
14 | 以前のキーの状態 (キーが呼び出しの前にダウンしている場合は 1、キーがアップしている場合は 0)。 |
15 | 遷移状態 (キーが解放されている場合は 1、キーが押されている場合は 0)。 |
メッセージの WM_KEYDOWN
場合、キー遷移ビット (ビット 15) は 0 で、コンテキスト コード ビット (ビット 13) は 0 です。
注釈
非システム キーは、Alt キーが押されていないときに押されたキーボード キー、または入力フォーカスがある場合 CWnd
に押されるキーボード キーです。
自動繰り返しのため、メンバー関数呼び出しが行われる前に、複数 OnKeyDown
の OnKeyUp
呼び出しが発生する可能性があります。 前のキー状態を示すビットを使用して、呼び出しが最初の OnKeyDown
ダウン遷移か、繰り返しダウン遷移かを判断できます。
IBM Enhanced 101 キーおよび 102 キー・キーボードの場合、拡張キーはキーボードのメイン・セクションで右 ALT キーと右 Ctrl キーです。テンキーの左側にあるクラスター内の INS、DEL、HOME、END、PAGE UP、PAGE DOWN、および方向キー。と、テンキーのスラッシュ (/) キーと ENTER キー。 他の一部のキーボードでは、 で nFlags
拡張キー ビットがサポートされている場合があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnKeyUp
フレームワークは、非システム キーが解放されたときに、このメンバー関数を呼び出します。
afx_msg void OnKeyUp(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
パラメーター
nChar
指定されたキーの仮想キー コードを指定します。 標準の仮想キー コードの一覧については、次を参照してください。 Winuser.h
nRepCnt
繰り返しカウント (ユーザーがキーを押した結果としてキーストロークが繰り返される回数)。
nFlags
次の一覧に示すように、スキャン コード、キー遷移コード、以前のキー状態、コンテキスト コードを指定します。
値 | 説明 |
---|---|
0-7 | コードをスキャンする (OEM に依存する値)。 上位ワードの下位バイト。 |
8 | 拡張キー (テンキーのファンクション キーやキーなど) (拡張キーの場合は 1、それ以外の場合は 0)。 |
9-10 | 使用されていません。 |
11-12 | Windows によって内部的に使用されます。 |
13 | コンテキスト コード (Alt キーを押しながら押している場合は 1、それ以外の場合は 0)。 |
14 | 以前のキー状態 (キーが呼び出しの前にダウンしている場合は 1、キーがアップの場合は 0)。 |
15 | 遷移状態 (キーが解放されている場合は 1、キーが押されている場合は 0)。 |
メッセージの WM_KEYUP
場合、キー遷移ビット (ビット 15) は 1 で、コンテキスト コード ビット (ビット 13) は 0 です。
注釈
非システム キーは、Alt キーが押されていないときに押されるキーボード キー、または が入力フォーカスを持つときに CWnd
押されるキーボード キーです。
IBM Enhanced 101 および 102 キーのキーボードの場合、拡張キーはキーボードのメイン セクションで右 Alt キーと右 Ctrl キーです。テンキーの左側にあるクラスター内の INS、DEL、HOME、END、PAGE UP、PAGE DOWN、および方向キー。テンキーのスラッシュ (/) キーと ENTER キーを使用します。 他の一部のキーボードでは、 nFlags で拡張キー ビットがサポートされている場合があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnKillFocus
フレームワークは、入力フォーカスを失う直前にこのメンバー関数を呼び出します。
afx_msg void OnKillFocus(CWnd* pNewWnd);
パラメーター
pNewWnd
入力フォーカスを受け取るウィンドウへのポインターを指定します (一時的な NULL
場合もあります)。
注釈
オブジェクトに CWnd
キャレットが表示されている場合は、この時点でキャレットを破棄する必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnLButtonDblClk
フレームワークは、ユーザーがマウスの左ボタンをダブルクリックすると、このメンバー関数を呼び出します。
afx_msg void OnLButtonDblClk(
UINT nFlags,
CPoint point);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合は を設定します。MK_LBUTTON
マウスの左ボタンが下にある場合に設定します。MK_MBUTTON
マウスの中央ボタンが下にある場合に設定します。MK_RBUTTON
マウスの右ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています。
注釈
スタイルを持つウィンドウのみが呼び出しを CS_DBLCLKS
WNDCLASS
受信 OnLButtonDblClk
します。 これは、Microsoft Foundation Class ウィンドウの既定値です。 Windows は、ユーザーがシステムのダブルクリックの制限時間内にマウスの左ボタンをもう一度押し、離したときに呼び出 OnLButtonDblClk
します。 マウスの左ボタンをダブルクリックすると、実際には、ボタンが離されたときに、メッセージWM_LBUTTONUP
、呼び出し、および別WM_LBUTTONUP
のWM_LBUTTONDBLCLK
メッセージの 4 つのイベントWM_LBUTTONDOWN
が生成されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnLButtonDown
フレームワークは、ユーザーがマウスの左ボタンを押すと、このメンバー関数を呼び出します。
afx_msg void OnLButtonDown(
UINT nFlags,
CPoint point);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合は を設定します。MK_LBUTTON
マウスの左ボタンが下にある場合に設定します。MK_MBUTTON
マウスの中央ボタンが下にある場合に設定します。MK_RBUTTON
マウスの右ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnLButtonUp
フレームワークは、ユーザーがマウスの左ボタンを離すと、このメンバー関数を呼び出します。
afx_msg void OnLButtonUp(
UINT nFlags,
CPoint point);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合は を設定します。MK_MBUTTON
マウスの中央ボタンが下にある場合に設定します。MK_RBUTTON
マウスの右ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMButtonDblClk
フレームワークは、ユーザーがマウスの中央ボタンをダブルクリックすると、このメンバー関数を呼び出します。
afx_msg void OnMButtonDblClk(
UINT nFlags,
CPoint point);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合は を設定します。MK_LBUTTON
マウスの左ボタンが下にある場合に設定します。MK_MBUTTON
マウスの中央ボタンが下にある場合に設定します。MK_RBUTTON
マウスの右ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています。
注釈
スタイルを持つウィンドウのみが呼び出しを CS_DBLCLKS
WNDCLASS
受信 OnMButtonDblClk
します。 これは、すべての Microsoft Foundation Class ウィンドウの既定値です。 Windows では、 OnMButtonDblClk
ユーザーがシステムのダブルクリックの制限時間内にマウスの中央ボタンをもう一度押すと、呼び出しが生成されます。 マウスの中央ボタンをダブルクリックすると、実際には、メッセージ、呼び出しWM_MBUTTONUP
、別WM_MBUTTONUP
のメッセージの 4 つのイベントWM_MBUTTONDOWN
がWM_MBUTTONDBLCLK
生成されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMButtonDown
フレームワークは、ユーザーがマウスの中央ボタンを押すと、このメンバー関数を呼び出します。
afx_msg void OnMButtonDown(
UINT nFlags,
CPoint point);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合は を設定します。MK_LBUTTON
マウスの左ボタンが下にある場合に設定します。MK_MBUTTON
マウスの中央ボタンが下にある場合に設定します。MK_RBUTTON
マウスの右ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMButtonUp
フレームワークは、ユーザーがマウスの中央ボタンを離すと、このメンバー関数を呼び出します。
afx_msg void OnMButtonUp(
UINT nFlags,
CPoint point);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合は を設定します。MK_LBUTTON
マウスの左ボタンが下にある場合に設定します。MK_RBUTTON
マウスの右ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMDIActivate
フレームワークは、非アクティブ化されている子ウィンドウとアクティブ化されている子ウィンドウに対して、このメンバー関数を呼び出します。
afx_msg void OnMDIActivate(
BOOL bActivate,
CWnd* pActivateWnd,
CWnd* pDeactivateWnd);
パラメーター
bActivate
TRUE
子がアクティブ化され FALSE
、非アクティブ化されている場合は 。
pActivateWnd
アクティブ化する MDI 子ウィンドウへのポインターが含まれます。 MDI 子ウィンドウによって受信されると、 pActivateWnd
アクティブ化されている子ウィンドウへのポインターが含まれます。 このポインターは一時的な場合があり、後で使用するために格納しないでください。
pDeactivateWnd
非アクティブ化されている MDI 子ウィンドウへのポインターが含まれます。 このポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
MDI 子ウィンドウは、MDI フレーム ウィンドウとは別にアクティブ化されます。 フレームがアクティブになると、呼び出しで OnMDIActivate
最後にアクティブ化された子ウィンドウは、アクティブなウィンドウ フレームとキャプション バーを描画するメッセージを受け取ります WM_NCACTIVATE
が、別 OnMDIActivate
の呼び出しは受信しません。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMeasureItem
フレームワークは、コントロールの作成時に、所有者描画ボタン、コンボ ボックス、リスト ボックス、またはメニュー項目の所有者に対して、フレームワークによってこのメンバー関数を呼び出します。
afx_msg void OnMeasureItem(
int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
パラメーター
nIDCtl
コントロールの ID。
lpMeasureItemStruct
所有者描画コントロールの MEASUREITEMSTRUCT
ディメンションを含むデータ構造を指します。
注釈
このメンバー関数をオーバーライドし、 と lpMeasureItemStruct
が指すデータ構造を入力MEASUREITEMSTRUCT
します。これにより、コントロールのディメンションが Windows に通知され、Windows がコントロールとのユーザー操作を正しく処理できるようになります。
または スタイルを使用してLBS_OWNERDRAWVARIABLE
CBS_OWNERDRAWVARIABLE
リスト ボックスまたはコンボ ボックスが作成された場合、フレームワークはコントロール内の各項目の所有者に対してこの関数を呼び出します。それ以外の場合、この関数は 1 回呼び出されます。
Windows は、メッセージを送信する前に OnMeasureItem
、スタイルで作成されたコンボ ボックスとリスト ボックスの所有者に対して の OWNERDRAWFIXED
呼び出しを WM_INITDIALOG
開始します。 その結果、所有者がこの呼び出しを受け取ったとき、Windows はコントロールで使用されるフォントの高さと幅をまだ決定していません。これらの値を必要とする関数呼び出しと計算は、アプリケーションまたはライブラリのメイン関数で行う必要があります。
測定対象の項目が 、CListBox
または CComboBox
オブジェクトのCMenu
場合は、MeasureItem
適切なクラスの仮想関数が呼び出されます。 MeasureItem
適切なコントロールの クラスのメンバー関数をオーバーライドして、各項目のサイズを計算して設定します。
OnMeasureItem
は、実行時にコントロールの クラスが作成されるか、 または スタイルでLBS_OWNERDRAWVARIABLE
CBS_OWNERDRAWVARIABLE
作成された場合にのみ呼び出されます。 ダイアログ エディターによってコントロールが作成された場合、 OnMeasureItem
は呼び出されません。 これは、メッセージがコントロールの WM_MEASUREITEM
作成プロセスの早い段階で送信されるためです。 、SubclassDlgItem
、または SubclassWindow
を使用DDX_Control
してサブクラス化する場合、サブクラス化は通常、作成プロセスの後に行われます。 したがって、MFC が を実装ON_WM_MEASUREITEM_REFLECT
するために使用するWM_MEASUREITEM
メカニズムである、コントロールの OnChildNotify
関数でメッセージを処理する方法はありません。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMenuChar
フレームワークは、ユーザーが現在のメニューの定義済みのニーモニックのいずれにも一致しないメニューニーモニック文字を押すと、このメンバー関数を呼び出します。
afx_msg LRESULT OnMenuChar(
UINT nChar,
UINT nFlags,
CMenu* pMenu);
パラメーター
nChar
ビルド設定に応じて、ユーザーが押した ANSI 文字または Unicode 文字を指定します。
nFlags
メニューが MF_POPUP
ポップアップ メニューの場合は、 フラグを含みます。 メニューがコントロール メニューの MF_SYSMENU
場合は、 フラグが含まれます。
pMenu
選択した CMenu
へのポインターを格納します。 ポインターは一時的な場合があり、格納しないでください。
戻り値
戻り値の上位ワードには、次のいずれかのコマンド コードが含まれている必要があります。
値 | 説明 |
---|---|
0 | ユーザーが押した文字を破棄し、システム スピーカーに短いビープ音を作成するように Windows に指示します。 |
1 | 現在のメニューを閉じるよう Windows に指示します。 |
2 | 戻り値の下位ワードに特定のアイテムのアイテム番号が含まれていることを Windows に通知します。 この項目は Windows によって選択されます。 |
上位ワードに 0 または 1 が含まれている場合、下位ワードは無視されます。 アプリケーションは、アクセラレータ (ショートカット) キーを使用してメニューに配置されたビットマップを選択するときに、このメッセージを処理する必要があります。
注釈
メニューを所有する に CWnd
送信されます。 OnMenuChar
は、キーがニーモニック文字に対応していない場合でも、ユーザーが Alt キーやその他のキーを押したときにも呼び出されます。 この場合、 pMenu
は によって CWnd
所有されているメニューを指し、 nFlags
は 0 です。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMenuDrag
フレームワークは、ユーザーがメニュー項目のドラッグを開始すると、現在のドラッグ アンド ドロップ メニューのこのメンバー関数を呼び出します。
afx_msg UINT OnMenuDrag(
UINT nPos,
CMenu* pMenu);
パラメーター
nPos
[入力]ドラッグ操作の開始時のメニュー項目のインデックス位置。
pMenu
[入力]メニュー項目を CMenu
含むオブジェクトへのポインター。
戻り値
戻り値 | 説明 |
---|---|
MND_CONTINUE |
メニューはアクティブなままである必要があります。 マウスが離された場合は、無視する必要があります。 |
MND_ENDMENU |
メニューは終了する必要があります。 |
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_MENUDRAG
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMenuGetObject
フレームワークは、マウス カーソルがメニュー項目に入るか、項目の中央から項目の上部または下部に移動したときに、現在のドラッグ アンド ドロップ メニューのこのメンバー関数を呼び出します。
afx_msg UINT OnMenuGetObject(MENUGETOBJECTINFO* pMenuGetObjectInfo);
パラメーター
pMenu
[入力]マウス カーソルが MENUGETOBJECTINFO
置かれたドラッグ アンド ドロップ メニューに関する情報を含む構造体へのポインター。
戻り値
戻り値 | 説明 |
---|---|
MNGO_NOERROR |
ドロップ アンド ドラッグ操作をサポートするインターフェイス ポインターは、 構造体のMENUGETOBJECTINFO メンバーでpvObj 返されます。 現時点では、 インターフェイスのみが IDropTarget サポートされています。 |
MNGO_NOINTERFACE |
ドロップ アンド ドラッグ インターフェイスはサポートされていません。 |
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_MENUGETOBJECT
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMenuRButtonUp
フレームワークは、カーソルがメニュー項目にあるときにユーザーがマウスの右ボタンを離したときに、このメンバー関数を呼び出します。
afx_msg void OnMenuRButtonUp(
UINT nPos,
CMenu* pMenu);
パラメーター
nPos
[入力]マウスの右ボタンが離されたときのメニュー項目のインデックス位置。
pMenu
[入力]メニュー項目を CMenu
含むオブジェクトへのポインター。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_MENURBUTTONUP
。 WM_MENURBUTTONUP
メッセージを使用すると、アプリケーションはメッセージで指定されたメニュー項目の状況依存メニューを提供できます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMenuSelect
オブジェクトがメニューに CWnd
関連付けられている場合、 は、 OnMenuSelect
ユーザーがメニュー項目を選択したときにフレームワークによって呼び出されます。
afx_msg void OnMenuSelect(
UINT nItemID,
UINT nFlags,
HMENU hSysMenu);
パラメーター
nItemID
選択した項目を識別します。 選択した項目がメニュー項目の場合は、 nItemID
メニュー項目 ID が含まれます。 選択した項目にポップアップ メニューが含まれている場合、 nItemID
ポップアップ メニューのインデックスが hSysMenu
含まれており、メイン (クリックオン) メニューのハンドルが含まれます。
nFlags
次のメニュー フラグの組み合わせが含まれています。
MF_BITMAP
項目はビットマップです。MF_CHECKED
項目がオンになっています。MF_DISABLED
アイテムが無効になっています。MF_GRAYED
項目が淡色表示されます。MF_MOUSESELECT
項目がマウスで選択されました。MF_OWNERDRAW
Item は所有者描画アイテムです。MF_POPUP
項目にはポップアップ メニューが含まれています。MF_SEPARATOR
項目はメニュー項目の区切り記号です。MF_SYSMENU
項目は[コントロール]メニューに含まれています。
hSysMenu
に が含まれている場合 nFlags
は MF_SYSMENU
、メッセージに関連付けられているメニューを識別します。 に が含まれている場合 nFlags
は MF_POPUP
、メイン メニューのハンドルを識別します。 と MF_POPUP
の両方が含まれているMF_SYSMENU
場合nFlags
は、使用されません。
注釈
0xFFFFが含まれており、hSysMenu
0 が含まれている場合nFlags
、ユーザーが ESC キーを押すか、メニューの外側をクリックしたため、Windows によってメニューが閉じられました。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMouseActivate
このメンバー関数は、カーソルが非アクティブなウィンドウ内にあり、ユーザーがマウス ボタンを押したときに、フレームワークによって呼び出されます。
afx_msg int OnMouseActivate(
CWnd* pDesktopWnd,
UINT nHitTest,
UINT message);
パラメーター
pDesktopWnd
アクティブ化されるウィンドウのトップレベルの親ウィンドウへのポインターが指定されます。 ポインターは一時的な場合があり、格納しないでください。
nHitTest
ヒット テストエリアコードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。
message
マウスのメッセージ番号が指定されます。
戻り値
をアクティブに CWnd
するかどうか、およびマウス イベントを破棄するかどうかを指定します。 これは、次のいずれかの値である必要があります。
MA_ACTIVATE
オブジェクトをアクティブ化CWnd
します。MA_NOACTIVATE
オブジェクトをアクティブ化CWnd
しないでください。MA_ACTIVATEANDEAT
オブジェクトをアクティブ化CWnd
し、マウス イベントを破棄します。MA_NOACTIVATEANDEAT
オブジェクトをアクティブにCWnd
せず、マウス イベントを破棄しないでください。
注釈
既定の実装では、処理が行われる前に、このメッセージが親ウィンドウに渡されます。 親ウィンドウが TRUE を返した場合、処理は停止されます。
個々のヒット テストエリアコードの説明については、メンバー関数を OnNcHitTest
参照してください。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
例
// The code fragment below shows how to UI activate an ActiveX control.
// CMyAxCtrl is a COleControl-derived class.
int CMyAxCtrl::OnMouseActivate(CWnd *pDesktopWnd, UINT nHitTest, UINT message)
{
OnActivateInPlace(TRUE, NULL); // OnActivateInPlace() is an undocumented function
return COleControl::OnMouseActivate(pDesktopWnd, nHitTest, message);
}
CWnd::OnMouseHover
フレームワークは、 の前の呼び出しで指定された期間、ウィンドウのクライアント領域にカーソルを合わせると、このメンバー関数を TrackMouseEvent
呼び出します。
afx_msg void OnMouseHover(
UINT nFlags,
CPoint point);
パラメーター
nFlags
[入力]押される修飾子キーを示すフラグのビットごとの組み合わせ (OR)。 たとえば、 フラグは MK_CONTROL
Ctrl キーが押されていることを示します。
point
[入力] CPoint
クライアント領域の左上隅を x
基準にしたカーソルの 座標と y
座標を指定する オブジェクト。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_MOUSEHOVER
。
パラメーターには nFlags
、次の表に示す修飾子キーの組み合わせを指定できます。 詳細については、「 マウス入力について」を参照してください。
修飾子キー | 説明 |
---|---|
MK_CONTROL |
Ctrl キーが押されます。 |
MK_LBUTTON |
マウスの左ボタンが押された状態です。 |
MK_MBUTTON |
マウスの中央ボタンが押された状態です。 |
MK_RBUTTON |
マウスの右ボタンが押された状態です。 |
MK_SHIFT |
Shift キーが押されます。 |
MK_XBUTTON1 |
XBUTTON1 Microsoft IntelliMouse のマウス ボタンが押されます。 |
MK_XBUTTON2 |
XBUTTON2 Microsoft IntelliMouse のマウス ボタンが押されます。 |
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMouseHWheel
フレームワークは、マウスの水平スクロール ホイールが傾いているか回転したときに、このメンバーを呼び出します。
afx_msg void OnMouseHWheel(
UINT nFlags,
short zDelta,
CPoint pt);
パラメーター
nFlags
[入力]押される修飾子キーを示すフラグのビットごとの組み合わせ (OR)。 たとえば、 フラグは MK_CONTROL
Ctrl キーが押されていることを示します。 フラグの一覧については、「 マウス入力について」の「メッセージ パラメーター」の小見出しを参照してください。
zDelta
[入力]ホイールが回転する距離を示します。これは、120 の倍数または分割 WHEEL_DELTA
で表されます。 正の値は、ホイールが右に回転したことを示します。負の値は、ホイールが左に回転したことを示します。
pt
[入力] CPoint
クライアント領域の左上隅を x
基準にしたカーソルの 座標と y
座標を指定する オブジェクト。
注釈
このメソッドは、Windows SDK で説明されている通知メッセージを受け取ります WM_MOUSEHWHEEL
。 このメッセージは、マウスの水平スクロール ホイールが傾いているか回転したときにフォーカスがあるウィンドウに送信されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMouseLeave
フレームワークは、 の前の呼び出しで指定されたウィンドウのクライアント領域からカーソルが離れると、このメンバー関数を TrackMouseEvent
呼び出します。
afx_msg void OnMouseLeave();
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_MOUSELEAVE
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMouseMove
フレームワークは、マウス カーソルが移動したときにこのメンバー関数を呼び出します。
afx_msg void OnMouseMove(
UINT nFlags,
CPoint point);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合は を設定します。MK_LBUTTON
マウスの左ボタンが下にある場合に設定します。MK_MBUTTON
マウスの中央ボタンが下にある場合に設定します。MK_RBUTTON
マウスの右ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています。
注釈
マウスがキャプチャされていない場合、 WM_MOUSEMOVE
メッセージはマウス カーソルの下にある CWnd
オブジェクトによって受信されます。それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが移動します。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMouseWheel
フレームワークは、ユーザーがマウス ホイールを回転させ、ホイールの次のノッチを検出すると、このメンバー関数を呼び出します。
afx_msg BOOL OnMouseWheel(
UINT nFlags,
short zDelta,
CPoint pt);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合は を設定します。MK_LBUTTON
マウスの左ボタンが下にある場合に設定します。MK_MBUTTON
マウスの中央ボタンが下にある場合に設定します。MK_RBUTTON
マウスの右ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
zDelta
回転した距離を示します。 値は zDelta
の倍数または分割 WHEEL_DELTA
で表されます。これは 120 です。 0 未満の値は戻る (ユーザーに向かって) 回転することを示し、0 より大きい値は (ユーザーから離れて) 前方に回転することを示します。 ユーザーは、マウス ソフトウェアの [ホイール] 設定を変更することで、この応答を元に戻すことができます。 このパラメーターの詳細については、「解説」を参照してください。
pt
カーソルの x 座標と y 座標を指定します。 これらの座標は、常に画面の左上隅を基準にしています。
戻り値
マウス ホイールのスクロールが有効な場合は 0 以外。それ以外の場合は 0。
注釈
オーバーライドされない限り、 OnMouseWheel
既定値の WM_MOUSEWHEEL
を呼び出します。 Windows は、フォーカスがあるコントロールまたは子ウィンドウにメッセージを自動的にルーティングします。 Win32 関数 DefWindowProc
は、メッセージを処理するウィンドウに親チェーンの上にメッセージを伝達します。
パラメーターは zDelta
の倍数 WHEEL_DELTA
であり、120 に設定されます。 この値は、実行するアクションのしきい値であり、デルタごとに 1 つのアクション (たとえば、1 つ前にスクロールする) が発生する必要があります。
WHEEL_DELTA
を120に設定し、切り欠きのない自由に回転するホイールなど、より細かい解像度のホイールを可能にしました。 より細かい解像度のホイールは、回転ごとにより多くのメッセージを送信しますが、各メッセージのデルタ値は小さくなります。 このようなホイールを使用するには、到達するまでWHEEL_DELTA
受信zDelta
値を追加するか (特定のデルタ回転に対して同じ応答を取得するように)、より頻繁なメッセージに応答して部分的な行をスクロールします。 スクロールの粒度を選択し、到達するまで WHEEL_DELTA
差分を累積することもできます。
独自のマウス ホイールスクロール動作を提供するには、このメンバー関数をオーバーライドします。
注意
OnMouseWheel
は、Windows NT 4.0 以降のバージョンのメッセージを処理します。 Windows 95/98 または Windows NT 3.51 メッセージ処理の場合は、 を使用しますOnRegisteredMouseWheel
。
CWnd::OnMove
フレームワークは、オブジェクトの移動後にこのメンバー関数を CWnd
呼び出します。
afx_msg void OnMove(
int x,
int y);
パラメーター
x
クライアント領域の左上隅の新しい x 座標位置を指定します。 この新しい場所は、重なり合うウィンドウとポップアップ ウィンドウの画面座標、および子ウィンドウの親クライアント座標で指定されます。
y
クライアント領域の左上隅の新しい y 座標の位置を指定します。 この新しい場所は、重なり合うウィンドウとポップアップ ウィンドウの画面座標、および子ウィンドウの親クライアント座標で指定されます。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnMoving
フレームワークは、ユーザーがオブジェクトを移動している間にこのメンバー関数を CWnd
呼び出します。
afx_msg void OnMoving(
UINT nSide,
LPRECT lpRect);
パラメーター
nSide
移動するウィンドウの端。
lpRect
アイテムの座標を CRect
含む または RECT
構造体 のアドレス。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcActivate
フレームワークは、非クライアント領域を変更してアクティブまたは非アクティブ状態を示す必要がある場合に、このメンバー関数を呼び出します。
afx_msg BOOL OnNcActivate(BOOL bActive);
パラメーター
bActive
アクティブまたは非アクティブ状態を示すためにキャプション バーまたはアイコンを変更する必要があるタイミングを指定します。 パラメーターは bActive
、 TRUE
アクティブなキャプションまたはアイコンを描画する場合です。 非アクティブなキャプションまたはアイコン用です FALSE
。
戻り値
Windows で既定の処理を続行する必要がある場合は 0 以外。キャプション バーまたはアイコンが非アクティブ化されないようにするには、0 を指定します。
注釈
既定の実装では、 が の場合はアクティブな色でタイトル バーとタイトル バー テキストが描画され、 が TRUE
FALSE
の場合bActive
bActive
は非アクティブな色で描画されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcCalcSize
フレームワークは、クライアント領域のサイズと位置を計算する必要がある場合に、このメンバー関数を呼び出します。
afx_msg void OnNcCalcSize(
BOOL bCalcValidRects,
NCCALCSIZE_PARAMS* lpncsp);
パラメーター
bCalcValidRects
アプリケーションがクライアント領域のどの部分に有効な情報を含めるかを指定するかどうかを指定します。 Windows は、新しいクライアント領域内の指定された領域に有効な情報をコピーします。 このパラメーターが TRUE の場合、アプリケーションはクライアント領域のどの部分が有効であるかを指定する必要があります。
lpncsp
アプリケーションが NCCALCSIZE_PARAMS
四角形の新しいサイズと位置 CWnd
(クライアント領域、罫線、キャプション、スクロール バーなど) を計算するために使用できる情報を含むデータ構造を指します。
注釈
このメッセージを処理することで、アプリケーションは、ウィンドウのサイズまたは位置が変更されたときに、ウィンドウのクライアント領域の内容を制御できます。
の値に関係なく、構造体の bCalcValidRects
構造体メンバーによって rgrc
指定された配列の最初の NCCALCSIZE_PARAMS
四角形には、ウィンドウの座標が含まれます。 子ウィンドウの場合、座標は親ウィンドウのクライアント領域を基準にしています。 トップレベル ウィンドウの場合、座標は画面座標です。 アプリケーションは、クライアント領域の rgrc[0]
サイズと位置を反映するように四角形を変更する必要があります。
rgrc[1]
四角形と rgrc[2]
四角形は、 が のTRUE
場合bCalcValidRects
にのみ有効です。 この場合、四角形には、 rgrc[1]
移動またはサイズ変更される前のウィンドウの座標が含まれます。 四角形には rgrc[2]
、ウィンドウが移動される前のウィンドウのクライアント領域の座標が含まれています。 すべての座標は、親ウィンドウまたは画面を基準にしています。
既定の実装では、ウィンドウの特性 (スクロール バーやメニューなど) に基づいてクライアント領域のサイズが計算され、結果が に lpncsp
配置されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcCreate
フレームワークは、オブジェクトが最初に作成されるときに、メッセージの WM_CREATE
前にこのメンバー関数を CWnd
呼び出します。
afx_msg BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct);
パラメーター
lpCreateStruct
の CREATESTRUCT
データ構造をポイントします CWnd
。
戻り値
非クライアント領域が作成された場合は 0 以外。 エラーが発生した場合は 0 です。この場合、 Create
関数は を返します failure
。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcDestroy
非クライアント領域が破棄されるときにフレームワークによって呼び出され、Windows ウィンドウが破棄されるときに呼び出される最後のメンバー関数です。
afx_msg void OnNcDestroy();
注釈
既定の実装では、クリーンアップが実行され、仮想メンバー関数 PostNcDestroy
が呼び出されます。
操作などの独自のクリーンアップを実行する場合は、 をdelete this
オーバーライドPostNcDestroy
します。 をオーバーライド OnNcDestroy
する場合は、基本クラスで を呼び出 OnNcDestroy
して、ウィンドウに内部的に割り当てられたメモリが解放されるようにする必要があります。
CWnd::OnNcHitTest
フレームワークは、マウスが移動されるたびに、カーソルを含むオブジェクト (またはメンバー関数をCWnd
使用してマウス入力をSetCapture
キャプチャしたオブジェクト) に対CWnd
してこのメンバー関数を呼び出します。
afx_msg LRESULT OnNcHitTest(CPoint point);
パラメーター
point
カーソルの x 座標と y 座標を格納します。 これらの座標は常に画面座標です。
戻り値
マウス ヒット テスト列挙値の 1 つ。 値の一覧については、 を参照してください WM_NCHITTEST
。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcLButtonDblClk
フレームワークは、カーソルが の非クライアント領域内 CWnd
にあるときに、ユーザーがマウスの左ボタンをダブルクリックすると、このメンバー関数を呼び出します。
afx_msg void OnNcLButtonDblClk(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
ヒット テスト コードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。 値の一覧については、 を参照してください WM_NCHITTEST
。
point
カーソル位置の CPoint
x および y 画面座標を含むオブジェクトを指定します。 これらの座標は、常に画面の左上隅を基準にしています。
注釈
必要に応じて、 WM_SYSCOMMAND
メッセージが送信されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcLButtonDown
ユーザーがマウスの左ボタンを押しながらカーソルがオブジェクトの非クライアント領域内にあるときに、フレームワークはこのメンバー関数を CWnd
呼び出します。
afx_msg void OnNcLButtonDown(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
ヒット テスト コードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。 値の一覧については、 を参照してください WM_NCHITTEST
。
point
カーソル位置の CPoint
x および y 画面座標を含むオブジェクトを指定します。 これらの座標は、常に画面の左上隅を基準にしています。
注釈
必要に応じて、 WM_SYSCOMMAND
が送信されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターには、メッセージの受信時にフレームワークによって受信されたパラメーターが反映されます。この関数の基底クラスの実装を呼び出す場合、その実装では、最初にメッセージと共に渡されたパラメーターが使用され、関数に指定したパラメーターは使用されません。
CWnd::OnNcLButtonUp
ユーザーがマウスの左ボタンを離したときに、カーソルがクライアント以外の領域内にあるときに、フレームワークはこのメンバー関数を呼び出します。
afx_msg void OnNcLButtonUp(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
ヒット テスト コードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。 値の一覧については、 を参照してください WM_NCHITTEST
。
point
カーソル位置の CPoint
x および y 画面座標を含むオブジェクトを指定します。 これらの座標は、常に画面の左上隅を基準にしています。
注釈
必要に応じて、 WM_SYSCOMMAND
が送信されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcMButtonDblClk
フレームワークは、カーソルがクライアント以外の領域内にある間にマウスの中央ボタンをダブルクリックすると、このメンバー関数を呼び出します。
afx_msg void OnNcMButtonDblClk(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
ヒット テスト コードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。
point
カーソル位置の CPoint
x および y 画面座標を含むオブジェクトを指定します。 これらの座標は、常に画面の左上隅を基準にしています。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcMButtonDown
フレームワークは、カーソルが非クライアント領域内にあるときにユーザーがマウスの中央ボタンを押すと、このメンバー関数を呼び出します。
afx_msg void OnNcMButtonDown(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
ヒット テスト コードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。
point
カーソル位置の CPoint
x 画面座標と y 画面座標を含むオブジェクトを指定します。 これらの座標は、常に画面の左上隅を基準にしています。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcMButtonUp
このメンバー関数は、カーソルが非クライアント領域内にあるときにユーザーがマウスの中央ボタンを離すと、フレームワークによって呼び出されます。
afx_msg void OnNcMButtonUp(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
ヒット テスト コードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。
point
カーソル位置の CPoint
x 画面座標と y 画面座標を含むオブジェクトを指定します。 これらの座標は、常に画面の左上隅を基準にしています。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcMouseHover
フレームワークは、 の前の呼び出しで指定された期間、ウィンドウの非クライアント領域にカーソルを合わせると、このメンバー関数を TrackMouseEvent
呼び出します。
afx_msg void OnNcMouseHover(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
[入力]メッセージの処理WM_NCHITTEST
の結果として関数によってCWnd::DefWindowProc
返されるヒット テスト値。
point
[入力] CPoint
画面の左上隅を基準としたカーソルの x 座標と y 座標を指定する オブジェクト。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_NCMOUSEHOVER
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcMouseLeave
フレームワークは、 の前の呼び出しで指定されたウィンドウの非クライアント領域からカーソルが離れると、このメンバー関数を TrackMouseEvent
呼び出します。
afx_msg void OnNcMouseLeave();
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_NCMOUSELEAVE
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcMouseMove
フレームワークは、カーソルが非クライアント領域内で移動されるときに、このメンバー関数を呼び出します。
afx_msg void OnNcMouseMove(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
ヒット テスト コードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。
point
カーソル位置の CPoint
x 画面座標と y 画面座標を含むオブジェクトを指定します。 これらの座標は、常に画面の左上隅を基準にしています。
注釈
必要に応じて、 WM_SYSCOMMAND
メッセージが送信されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcPaint
フレームワークは、非クライアント領域を描画する必要がある場合に、このメンバー関数を呼び出します。
afx_msg void OnNcPaint();
注釈
既定の実装では、ウィンドウ フレームが描画されます。
アプリケーションは、この呼び出しをオーバーライドし、独自のカスタム ウィンドウ フレームを描画できます。 フレームの形状が変更された場合でも、クリッピング領域は常に四角形になります。
CWnd::OnNcRButtonDblClk
フレームワークは、カーソルが の非クライアント領域内 CWnd
にあるときにユーザーがマウスの右ボタンをダブルクリックすると、このメンバー関数を呼び出します。
afx_msg void OnNcRButtonDblClk(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
ヒット テスト コードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。
point
カーソル位置の CPoint
x 画面座標と y 画面座標を含むオブジェクトを指定します。 これらの座標は、常に画面の左上隅を基準にしています。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcRButtonDown
フレームワークは、カーソルが非クライアント領域内にあるときにユーザーがマウスの右ボタンを押すと、このメンバー関数を呼び出します。
afx_msg void OnNcRButtonDown(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
ヒット テスト コードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。
point
カーソル位置の CPoint
x 画面座標と y 画面座標を含むオブジェクトを指定します。 これらの座標は、常に画面の左上隅を基準にしています。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcRButtonUp
このメンバー関数は、カーソルが非クライアント領域内にあるときにユーザーがマウスの右ボタンを離すと、フレームワークによって呼び出されます。
afx_msg void OnNcRButtonUp(
UINT nHitTest,
CPoint point);
パラメーター
nHitTest
ヒット テスト コードを指定します。 ヒット テストは、カーソルの位置を判断するテストです。
point
カーソル位置の CPoint
x 画面座標と y 画面座標を含むオブジェクトを指定します。 これらの座標は、常に画面の左上隅を基準にしています。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcRenderingChanged
フレームワークは、非クライアント領域のレンダリング ポリシーが変更されたときに、このメンバーを呼び出します。
afx_msg void OnNcRenderingChanged(BOOL bIsRendering);
パラメーター
bIsRendering
[入力] TRUE
デスクトップ ウィンドウ マネージャー (DWM) レンダリングがウィンドウの非クライアント領域に対して有効になっている場合。 FALSE
レンダリングが無効になっている場合は 。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_DWMNCRENDERINGCHANGED
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcXButtonDblClk
フレームワークは、ユーザーがダブルクリック XBUTTON1
したとき、または XBUTTON2
カーソルがウィンドウの非クライアント領域にあるときに、このメンバー関数を呼び出します。
void OnNcXButtonDblClk(
short nHitTest,
UINT nButton,
CPoint point);
パラメーター
nHitTest
[入力]メッセージの処理WM_NCHITTEST
の結果として関数によってCWnd::DefWindowProc
返されるヒット テスト値。
nButton
[入力]最初の XBUTTON1
Microsoft Intellimouse X ボタンがダブルクリックされている場合、または XBUTTON2
2 つ目の X ボタンがダブルクリックされている場合は、 の値。
point
[入力] CPoint
クライアント領域の左上隅を x
基準にしたカーソルの 座標と y
座標を指定する オブジェクト。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_XBUTTONDBLCLK
。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcXButtonDown
ウィンドウの非クライアント領域にカーソルがある間にユーザーがまたはXBUTTON2
マウスを押XBUTTON1
すと、フレームワークはこのメンバー関数を呼び出します。
afx_msg void OnNcXButtonDown(
short nHitTest,
UINT nButton,
CPoint point);
パラメーター
nHitTest
[入力]メッセージの処理WM_NCHITTEST
の結果として関数によってCWnd::DefWindowProc
返されるヒット テスト値。
nButton
[入力]1 つ目の XBUTTON1
マウス X ボタンが押された場合、または XBUTTON2
2 番目の X ボタンが押された場合は の値。
point
[入力] CPoint
画面の左上隅を x
基準にしたカーソルの 座標と y
座標を指定する オブジェクト。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_NCXBUTTONDOWN
。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNcXButtonUp
ウィンドウのクライアント以外の領域にカーソルがある間に、ユーザーがマウスを離すか、マウスXBUTTON2
を離XBUTTON1
すと、フレームワークはこのメンバー関数を呼び出します。
afx_msg void OnNcXButtonUp(
short nHitTest,
UINT nButton,
CPoint point);
パラメーター
nHitTest
[入力]メッセージの処理WM_NCHITTEST
の結果として関数によってCWnd::DefWindowProc
返されるヒット テスト値。
nButton
[入力]最初の XBUTTON1
マウスの X ボタンが離された場合、または XBUTTON2
2 つ目の X ボタンが離された場合は の値。
point
[入力] CPoint
画面の左上隅を基準にしたカーソルの x 座標と y 座標を指定する オブジェクト。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_NCXBUTTONUP
。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスをキャプチャした場合、このメッセージは投稿されません。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNextMenu
フレームワークは、メニュー バーとシステム メニューを切り替えるために右方向キーまたは左方向キーを使用すると、このメンバー関数を呼び出します。
afx_msg void OnNextMenu(
UINT nKey,
LPMDINEXTMENU lpMdiNextMenu);
パラメーター
nKey
[入力]どの修飾子キーが押されているかを示すフラグのビットごとの組み合わせ (OR
)。 たとえば、 フラグは MK_CONTROL
Ctrl キーが押されていることを示します。 フラグの一覧については、「 マウス入力について」の「メッセージ パラメーター」小見出しを参照してください。
lpMdiNextMenu
[入力]アクティブ化する MDINEXTMENU
メニューに関する情報を含む構造体へのポインター。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_UNINITMENUPOPUP
。 このメッセージに応答して、アプリケーションは 構造体のメンバーをhmenuNext
設定して切り替えるメニューを指定し、メンバーはhwndNext
メニュー通知メッセージを受信するウィンドウを指定MDINEXTMENU
できます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnNotify
フレームワークは、このメンバー関数を呼び出して、コントロールでイベントが発生したことを親ウィンドウに通知するか、コントロールに何らかの情報が必要であることを通知します。
virtual BOOL OnNotify(
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
パラメーター
wParam
メッセージがコントロールからの場合にメッセージを送信するコントロールを識別します。 それ以外の場合、 wParam
は 0 です。
lParam
通知コードと追加情報を含む通知メッセージ (NMHDR
) 構造体へのポインター。 一部の通知メッセージでは、このパラメーターは、NMHDR
構造を最初のメンバーとして含む、より大きな構造体をポイントします。
pResult
メッセージが LRESULT
処理された場合に結果コードを格納する変数へのポインター。
戻り値
このメッセージを処理すると、アプリケーションは 0 以外の値を返します。それ以外の場合は 0。
注釈
OnNotify
は、制御通知用のメッセージ マップを処理します。
メッセージを処理するには、派生クラスでこのメンバー関数を WM_NOTIFY
オーバーライドします。 オーバーライドは、基底クラス OnNotify
が呼び出されない限り、メッセージ マップを処理しません。
メッセージのWM_NOTIFY
詳細については、「テクニカル ノート 61 (TN061)」およびWM_NOTIFY
「メッセージ」ON_NOTIFY
を参照してください。 また、「 コントロール トピック」および「TN062、 Windows コントロールのメッセージ リフレクション」で説明されている関連トピックに関心がある場合もあります。
CWnd::OnNotifyFormat
フレームワークは、このメンバー関数を呼び出して、現在のウィンドウが通知メッセージで ANSI または Unicode 構造体を WM_NOTIFY
受け入れるかどうかを判断します。
afx_msg UINT OnNotifyFormat(
CWnd* pWnd,
UINT nCommand);
パラメーター
pWnd
[入力]メッセージを CWnd
送信 WM_NOTIFY
するウィンドウを表す オブジェクトへのポインター。 このパラメーターは、 パラメーターが の場合はコントロールへのポインター、が の場合nCommand
nCommand
はNF_QUERY
コントロールの親ウィンドウへのポインターですNF_REQUERY
。
nCommand
[入力]メッセージを特化する WM_NOTIFY
コマンド値。 次の値を指定できます。
NF_QUERY
- メッセージは、ANSI 構造体と Unicode 構造体のどちらをメッセージでWM_NOTIFY
使用するかを判断するクエリです。 このメッセージは、コントロールの作成時に、このメッセージの形式に応じて、コントロールから親ウィンドウにNF_REQUERY
送信されます。NF_REQUERY
- メッセージは、このメッセージの形式を親ウィンドウに送信NF_QUERY
するコントロールの要求です。 この要求は親ウィンドウから送信され、メッセージでWM_NOTIFY
使用する構造体の種類について親を再クエリするようにコントロールに要求します。 パラメーターが のnCommand
NF_REQUERY
場合、戻り値は再クエリ操作の結果です。
戻り値
戻り値 | 説明 |
---|---|
NFR_ANSI |
ANSI 構造体は、コントロールによって送信されるメッセージで WM_NOTIFY 使用する必要があります。 |
NFR_UNICODE |
Unicode 構造体は、コントロールによって送信されるメッセージで WM_NOTIFY 使用する必要があります。 |
0 | エラーが発生しました。 |
解説
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_NOTIFYFORMAT
。 WM_NOTIFY
メッセージは、共通コントロールから親ウィンドウ、および親ウィンドウから共通コントロールに送信されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnPaint
フレームワークは、Windows またはアプリケーションがアプリケーションのウィンドウの一部を再描画する要求を行うときに、このメンバー関数を呼び出します。
afx_msg void OnPaint();
注釈
WM_PAINT
または RedrawWindow
メンバー関数が呼び出されるとUpdateWindow
、メッセージが送信されます。
ウィンドウは、フラグが設定されたメンバー関数を呼び出した RedrawWindow
結果として内部ペイント メッセージを RDW_INTERNALPAINT
受け取る場合があります。 この場合、ウィンドウに更新領域がない可能性があります。 アプリケーションはメンバー関数を GetUpdateRect
呼び出して、ウィンドウに更新領域があるかどうかを判断する必要があります。 が 0 を返す場合GetUpdateRect
、アプリケーションは および EndPaint
メンバー関数をBeginPaint
呼び出さないでください。
メッセージが無効な領域とフラグが設定されたメンバー関数の呼び出しRedrawWindow
の両方によって発生している可能性があるためWM_PAINT
、各WM_PAINT
メッセージの内部データ構造を調べることで、必要な内部再描画または更新を確認するのはアプリケーションのRDW_INTERNALPAINT
責任です。
内部 WM_PAINT
メッセージは、Windows によって 1 回だけ送信されます。 メンバー関数によってUpdateWindow
内部WM_PAINT
メッセージがウィンドウに送信された後、ウィンドウが無効になるまで、またはフラグを設定してメンバー関数が再度RDW_INTERNALPAINT
呼び出されるまでRedrawWindow
、それ以上WM_PAINT
のメッセージは送信または投稿されません。
ドキュメント/ビュー アプリケーションでのイメージのレンダリングの詳細については、「」を参照してください CView::OnDraw
。
の使用 WM_Paint
の詳細については、Windows SDK の次のトピックを参照してください。
CWnd::OnPaintClipboard
クリップボード所有者の OnPaintClipboard
メンバー関数は、クリップボード所有者がクリップボードに CF_OWNERDISPLAY
形式でデータを格納したことによりクリップボード ビューアーのクライアント領域を再描画する必要があるときにクリップボード ビューアーによって呼び出されます。
afx_msg void OnPaintClipboard(
CWnd* pClipAppWnd,
HGLOBAL hPaintStruct);
パラメーター
pClipAppWnd
クリップボード アプリケーション ウィンドウへのポインターを指定します。 ポインターは一時的な場合があり、後で使用するために格納しないでください。
hPaintStruct
PAINTSTRUCT
塗りつぶすクライアント領域の部分を定義するデータ構造を識別します。
注釈
クライアント領域全体またはその一部だけを再描画する必要があるかどうかを判断するには、クリップボードの所有者は、構造体のメンバーでrcpaint
指定された描画領域の寸法を、最新OnSizeClipboard
のPAINTSTRUCT
メンバー関数呼び出しで指定された寸法と比較する必要があります。
OnPaintClipboard
は、Windows 関数を GlobalLock
使用して、データ構造を含むメモリを PAINTSTRUCT
ロックし、Windows 関数を使用してそのメモリのロックを GlobalUnlock
解除してから終了する必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnPaletteChanged
フレームワークは、入力フォーカスのあるウィンドウが論理パレットを実現し、システム パレットを変更した後、すべての最上位ウィンドウに対してこのメンバー関数を呼び出します。
afx_msg void OnPaletteChanged(CWnd* pFocusWnd);
パラメーター
pFocusWnd
システム パレットを変更する原因となったウィンドウへのポインターを指定します。 ポインターは一時的な場合があり、格納しないでください。
注釈
この呼び出しにより、カラー パレットを使用して論理パレットを実現し、クライアント領域を更新する入力フォーカスのないウィンドウが許可されます。
メンバー関数は OnPaletteChanged
、システム パレットを変更し、メッセージが送信される原因 WM_PALETTECHANGED
となったウィンドウを含め、すべての最上位ウィンドウと重複ウィンドウに対して呼び出されます。 いずれかの子ウィンドウでカラー パレットが使用されている場合は、このメッセージを渡す必要があります。
無限ループを回避するために、ウィンドウはそれ自体へのポインターを含まないと判断 pFocusWnd
しない限り、そのパレットを認識しないようにする必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnPaletteIsChanging
フレームワークは、このメンバー関数を呼び出して、アプリケーションが論理パレットを実現しようとしていることをアプリケーションに通知します。
afx_msg void OnPaletteIsChanging(CWnd* pRealizeWnd);
パラメーター
pRealizeWnd
論理パレットを実現しようとしているウィンドウを指定します。
注釈
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnParentNotify
親の OnParentNotify
メンバー関数は、子ウィンドウが作成または破棄されたとき、またはカーソルが子ウィンドウの上にある間にユーザーがマウス ボタンをクリックしたときに、フレームワークによって呼び出されます。
afx_msg void OnParentNotify(
UINT message,
LPARAM lParam);
パラメーター
message
親が通知を受けるイベントと、子ウィンドウの識別子を指定します。 イベントは の下位ワード message
です。 イベントが WM_CREATE
または WM_DESTROY
の場合、 の message
高次ワードは子ウィンドウの識別子です。それ以外の場合、高次ワードは未定義です。 イベント (の下位ワード message
) には、次のいずれかの値を指定できます。
WM_CREATE
子ウィンドウが作成されています。WM_DESTROY
子ウィンドウが破棄されています。WM_LBUTTONDOWN
ユーザーが子ウィンドウの上にマウス カーソルを置き、マウスの左ボタンをクリックしました。WM_MBUTTONDOWN
ユーザーが子ウィンドウの上にマウス カーソルを置き、マウスの中央ボタンをクリックしました。WM_RBUTTONDOWN
ユーザーが子ウィンドウの上にマウス カーソルを置き、マウスの右ボタンをクリックしました。
lParam
のイベント (下位ワード) message
が または WM_DESTROY
のlParam
場合はWM_CREATE
、子ウィンドウのウィンドウ ハンドルを指定します。それ以外の場合lParam
は、カーソルの x 座標と y 座標が含まれます。 x 座標は下位ワードにあり、y 座標は上位ワードにあります。
注釈
子ウィンドウが作成されると、システムは、ウィンドウを作成するメンバー関数がCreate
戻る直前に を呼び出OnParentNotify
します。 子ウィンドウが破棄されると、ウィンドウを破棄するために処理が行われる前に、システムが を呼び出 OnParentNotify
します。
OnParentNotify
は、最上位のウィンドウを含む、子ウィンドウのすべての先祖ウィンドウに対して呼び出されます。
スタイルを持つ子ウィンドウを除くすべての子ウィンドウは、 WS_EX_NOPARENTNOTIFY
このメッセージを親ウィンドウに送信します。 既定では、ダイアログ ボックス内の子ウィンドウは、メンバー関数を WS_EX_NOPARENTNOTIFY
呼び出してこのスタイルなしで子ウィンドウを作成しない限り、スタイルを CreateEx
持ちます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnPowerBroadcast
フレームワークは、電源管理イベントが発生したときにこのメンバー関数を呼び出します。
afx_msg UINT OnPowerBroadcast(
UINT nPowerEvent,
UINT nEventData);
パラメーター
nPowerEvent
[入力]電源管理イベント。
nEventData
[入力]イベント固有のデータ。
戻り値
イベントが要求の場合は、 を返 TRUE
して要求を許可するか、要求 BROADCAST_QUERY_DENY
を拒否します。
注釈
このメソッドは、Windows SDK で説明されているメッセージを受信 WM_POWERBROADCAST
します。
パラメーターは nPowerEvent
、バッテリー残量が少ない、電源状態が変更された、操作を中断するアクセス許可が要求または拒否された、イベントが発生した後に操作が自動的に再開される、システムが操作を中断している、または中断後に操作を再開するなどのイベントを指定します。 通常、 nEventData
パラメーターは使用されません。 詳細については、メッセージの wParam
パラメーターと lParam
パラメーターに関するページを WM_POWERBROADCAST
参照してください。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnQueryDragIcon
フレームワークは、最小化された (アイコン) ウィンドウによってこのメンバー関数を呼び出します。このウィンドウには、そのクラスのアイコンが定義されていません。
afx_msg HCURSOR OnQueryDragIcon();
戻り値
下位の単語にカーソルまたはアイコン ハンドルを含む doubleword 値。 カーソルまたはアイコンは、ディスプレイ ドライバーの解像度と互換性がある必要があります。 アプリケーションから が返された NULL
場合、システムは既定のカーソルを表示します。 既定の戻り値は NULL
です。
注釈
この呼び出しは、最小化されたウィンドウをユーザーがドラッグしている間に表示するカーソルを取得するために行います。 アプリケーションがアイコンまたはカーソルのハンドルを返す場合、システムはそれを白黒に変換します。 アプリケーションがハンドルを返す場合、ハンドルは、ディスプレイ ドライバーの解像度と互換性のあるモノクロ カーソルまたはアイコンを識別する必要があります。 アプリケーションは、 または CWinApp::LoadIcon
メンバー関数をCWinApp::LoadCursor
呼び出して、実行可能ファイル内のリソースからカーソルまたはアイコンを読み込み、このハンドルを取得できます。
CWnd::OnQueryEndSession
フレームワークは、ユーザーが Windows セッションの終了を選択したとき、またはアプリケーションが Windows 関数を呼び出すときに、このメンバー関数を ExitWindows
呼び出します。
afx_msg BOOL OnQueryEndSession();
戻り値
アプリケーションを簡単にシャットダウンできる場合は 0 以外。それ以外の場合は 0。
注釈
いずれかのアプリケーションが 0 を返した場合、Windows セッションは終了しません。 1 つのアプリケーションが 0 を返すとすぐに Windows の呼び出しOnQueryEndSession
が停止し、0 以外の値が既に返されているアプリケーションのパラメーター値が のFALSE
メッセージを送信WM_ENDSESSION
します。
CWnd::OnQueryNewPalette
フレームワークは、オブジェクトが入力フォーカスを CWnd
受け取りそうになったときにこのメンバー関数を呼び出し、フォーカスを受け取ったときに論理パレットを実現する機会を提供 CWnd
します。
afx_msg BOOL OnQueryNewPalette();
戻り値
が論理パレットを CWnd
実現する場合は 0 以外、それ以外の場合は 0。
CWnd::OnQueryOpen
フレームワークは、オブジェクトが最小化され、ユーザーが、 を事前に最小化されたサイズと位置に復元するようにCWnd
要求するとCWnd
、このメンバー関数を呼び出します。
afx_msg BOOL OnQueryOpen();
戻り値
アイコンを開くことができる場合は 0 以外、アイコンを開くことができない場合は 0。
注釈
ではOnQueryOpen
CWnd
、アクティブ化やフォーカスの変更 (ダイアログ ボックスの作成など) を引き起こすアクションは実行しないでください。
CWnd::OnQueryUIState
ウィンドウのユーザー インターフェイス (UI) 状態を取得するために呼び出されます。
afx_msg UINT OnQueryUIState();
戻り値
戻り値は、 NULL
フォーカス インジケーターとキーボード アクセラレータが表示されている場合です。 それ以外の場合、戻り値には、次の値の 1 つ以上を指定できます。
UISF_HIDEFOCUS
フォーカス インジケーターは非表示です。UISF_HIDEACCEL
キーボード アクセラレータは非表示です。UISF_ACTIVE
Windows XP: コントロールは、アクティブなコントロールに使用されるスタイルで描画する必要があります。
注釈
このメンバー関数は、Windows SDK で説明されているように、メッセージの WM_QUERYUISTATE
機能をエミュレートします。
CWnd::OnRawInput
フレームワークは、現在のウィンドウが生の入力を取得すると、このメンバー関数を呼び出します。
afx_msg void OnRawInput(
UINT nInputCode,
HRAWINPUT hRawInput);
パラメーター
nInputCode
[入力]アプリケーションがフォアグラウンドの間に入力されたかどうかを示す入力コード。 どちらの場合も、システムがクリーンアップを実行できるように、アプリケーションは を呼び出す CWnd::DefWindowProc
必要があります。 このパラメーターには、次のいずれかの値を指定できます。
RIM_INPUT
- アプリケーションがフォアグラウンドの間に入力されました。RIM_INPUTSINK
- アプリケーションがフォアグラウンドにいないときに入力が発生しました。
hRawInput
[入力] RAWINPUT
デバイスからの生入力を含む構造体を処理します。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_INPUT
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnRButtonDblClk
フレームワークは、ユーザーがマウスの右ボタンをダブルクリックすると、このメンバー関数を呼び出します。
afx_msg void OnRButtonDblClk(
UINT nFlags,
CPoint point);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合に設定します。MK_LBUTTON
マウスの左ボタンが下にある場合に設定します。MK_MBUTTON
マウスの中央ボタンが下にある場合に設定します。MK_RBUTTON
マウスの右ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています。
注釈
呼び出しを受信OnRButtonDblClk
できるのは、CS_DBLCLKS WNDCLASS
スタイルのウィンドウのみです。 これは、Microsoft Foundation クラス ライブラリ内のウィンドウの既定値です。 Windows は、ユーザーが押して離した後、システムのダブルクリック時間制限内でマウスの右ボタンをもう一度押したときに呼び出 OnRButtonDblClk
します。 マウスの右ボタンをダブルクリックすると、実際には 4 つのイベントが生成されます。 WM_RBUTTONDOWN
WM_RBUTTONUP
ボタンが離されると、メッセージ、 OnRButtonDblClk
呼び出し、別のWM_RBUTTONUP メッセージが生成されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnRButtonDown
フレームワークは、ユーザーがマウスの右ボタンを押すと、このメンバー関数を呼び出します。
afx_msg void OnRButtonDown(
UINT nFlags,
CPoint point);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合に設定します。MK_LBUTTON
マウスの左ボタンが下にある場合に設定します。MK_MBUTTON
マウスの中央ボタンが下にある場合に設定します。MK_RBUTTON
マウスの右ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています。
注釈
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnRButtonUp
フレームワークは、ユーザーがマウスの右ボタンを離すと、このメンバー関数を呼び出します。
afx_msg void OnRButtonUp(
UINT nFlags,
CPoint point);
パラメーター
nFlags
さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値の任意の組み合わせを指定できます。
MK_CONTROL
Ctrl キーがダウンしている場合に設定します。MK_LBUTTON
マウスの左ボタンが下にある場合に設定します。MK_MBUTTON
マウスの中央ボタンが下にある場合に設定します。MK_SHIFT
Shift キーがダウンしている場合に設定します。
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています。
注釈
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnRegisteredMouseWheel
フレームワークは、ユーザーがマウス ホイールを回転させ、ホイールの次のノッチを検出すると、このメンバー関数を呼び出します。
afx_msg LRESULT OnRegisteredMouseWheel(
WPARAM wParam,
LPARAM lParam);
パラメーター
wParam
ポインターの水平方向の位置。
lParam
ポインターの垂直方向の位置。
戻り値
現時点では重要でない。 常にゼロです。
注釈
オーバーライドされない限り、 OnRegisteredMouseWheel
メッセージを適切なウィンドウ (フォーカスのある親ウィンドウ) にルーティングし、そのウィンドウのハンドラーを WM_MOUSEWHEEL
呼び出します。
独自のメッセージ ルーティングを提供したり、マウス ホイールのスクロール動作を変更したりするには、このメンバー関数をオーバーライドします。
注意
OnRegisteredMouseWheel
は、Windows 95/98 および Windows NT 3.51 のメッセージを処理します。 Windows NT 4.0 メッセージ処理の場合は、 を使用しますOnMouseWheel
。
CWnd::OnRenderAllFormats
クリップボード所有者の OnRenderAllFormats
メンバー関数は、所有者アプリケーションが破棄されるときにフレームワークによって呼び出されます。
afx_msg void OnRenderAllFormats();
注釈
クリップボードの所有者は、生成できるすべての形式でデータをレンダリングし、Windows 関数を呼び出して各形式のデータ ハンドルをクリップボードに SetClipboardData
渡す必要があります。 これにより、データをレンダリングしたアプリケーションが破棄された場合でも、クリップボードに有効なデータが含まれていることが保証されます。 アプリケーションは、Windows 関数を OpenClipboard
呼び出す前にメンバー関数を SetClipboardData
呼び出し、後で Windows 関数を CloseClipboard
呼び出す必要があります。
CWnd::OnRenderFormat
レンダリングが遅延した特定の OnRenderFormat
形式をレンダリングする必要がある場合、クリップボード所有者のメンバー関数はフレームワークによって呼び出されます。
afx_msg void OnRenderFormat(UINT nFormat);
パラメーター
nFormat
クリップボード形式を指定します。
注釈
受信側は、その形式でデータをレンダリングし、Windows 関数を呼び出してクリップボードに SetClipboardData
渡す必要があります。
内OnRenderFormat
からメンバー関数または Windows 関数をCloseClipboard
呼び出OpenClipboard
さないでください。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSessionChange
フレームワークは、このメンバー関数を呼び出して、セッション状態の変更をアプリケーションに通知します。
afx_msg void OnSessionChange(
UINT nSessionState,
UINT nId);
パラメーター
nSessionState
[入力]状態コードでは、セッション状態の変更について説明します。
nId
[入力]セッション識別子。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_WTSSESSION_CHANGE
。
パラメーターは nSessionState
、セッションがコンソールまたはリモート 端末に接続または切断されていること、ユーザーがログオンまたはログオフしている、セッションがロックまたはロック解除されている、またはセッションがリモート制御状態に変更されたことを指定します。 詳細については、メッセージの パラメーターをwParam
WM_WTSSESSION_CHANGE
参照してください。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSetCursor
マウス入力がキャプチャされておらず、マウスがオブジェクト内でカーソルの移動を引き起こす場合、フレームワークはこのメンバー関数を CWnd
呼び出します。
afx_msg BOOL OnSetCursor(
CWnd* pWnd,
UINT nHitTest,
UINT message);
パラメーター
pWnd
カーソルを含むウィンドウへのポインターを指定します。 ポインターは一時的なものであり、後で使用するために格納しないでください。
nHitTest
ヒット テストエリアコードを指定します。 ヒット テストによって、カーソルの位置が決定されます。
message
マウスのメッセージ番号が指定されます。
戻り値
それ以上の処理を停止する場合は 0 以外、続行するには 0。
注釈
既定の実装では、処理の前に親ウィンドウの が OnSetCursor
呼び出されます。 親ウィンドウから が返された TRUE
場合、それ以降の処理は停止されます。 親ウィンドウを呼び出すと、子ウィンドウのカーソルの設定を親ウィンドウで制御できます。
既定の実装では、カーソルがクライアント領域にない場合は矢印に設定され、存在する場合は登録済みクラス カーソルに設定されます。
が HTERROR
と message
がマウス ボタンダウン メッセージの場合nHitTest
、MessageBeep
メンバー関数が呼び出されます。
メッセージ パラメーターは、メニュー モードに入ると CWnd
0 になります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSetFocus
フレームワークは、入力フォーカスを取得した後、このメンバー関数を呼び出します。
afx_msg void OnSetFocus(CWnd* pOldWnd);
パラメーター
pOldWnd
入力フォーカスを CWnd
失うオブジェクトを格納します (になる場合があります NULL
)。 ポインターは一時的なものであり、後で使用するために格納しないでください。
注釈
キャレットを表示するには、 CWnd
この時点で適切なキャレット関数を呼び出す必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSettingChange
Win32 SystemParametersInfo 関数がシステム全体の設定を変更すると、フレームワークはすべての最上位ウィンドウを呼び出 OnSettingChange
します。
afx_msg void OnSettingChange(
UINT uFlags,
LPCTSTR lpszSection);
パラメーター
uFlags
システムが呼び出しの結果としてメッセージを SystemParametersInfo
送信する場合、このパラメーターは変更されたシステム・パラメーターを示すフラグです。 値の一覧については、Windows SDK を参照してください SystemParametersInfo
。 アプリケーションがメッセージを送信する場合、このパラメーターは 0 である必要があります。
lpszSection
変更されたセクションの名前を指定する文字列を指します。 (文字列には、セクション名を囲む角かっこは含まれません)。
注釈
アプリケーションは、システム パラメーターに変更を加えたときに、すべての最上位ウィンドウにメッセージを送信する必要があり、ユーザーがコントロール パネルを介して設定を変更すると、Windows によってメッセージが送信されます。
メッセージは ON_WM_SETTINGCHANGE
メッセージに似ていますが ON_WM_WININICHANGE
、次の違いがあります。
Windows NT 4.0 以降、または Windows 95/98 の下でを実行する場合に使用
ON_WM_SETTINGCHANGE
します。Windows NT 3.51 以前を実行する場合に使用
ON_WININICHANGE
します。 このメッセージは廃止されました。
これらのマクロは、メッセージ マップに 1 つだけ含める必要があります。 Windows 95/98 と Windows NT 4.0 の両方で動作するプログラムを作成するには、 のON_WM_SETTINGCHANGE
ハンドラーを記述します。 Windows NT 3.51 では、ハンドラーは によってOnSettingChange
uFlags
呼び出され、常に 0 になります。
CWnd::OnShowWindow
フレームワークは、オブジェクトが非表示または表示されようとしているときに CWnd
、このメンバー関数を呼び出します。
afx_msg void OnShowWindow(
BOOL bShow,
UINT nStatus);
パラメーター
bShow
ウィンドウを表示するかどうかを指定します。 ウィンドウが TRUE
表示されている場合は です。ウィンドウが非表示になっている場合です FALSE
。
nStatus
表示されるウィンドウの状態を指定します。 メンバー関数呼び出しのために ShowWindow
メッセージが送信される場合は 0 です。それ以外の場合 nStatus
は次のいずれかです。
SW_PARENTCLOSING
親ウィンドウが閉じている (アイコン化されている) か、ポップアップ ウィンドウが非表示になっています。SW_PARENTOPENING
親ウィンドウが開かれている (表示中) か、ポップアップ ウィンドウが表示されています。
注釈
メンバー関数が呼び出されたとき ShowWindow
、重なり合ったウィンドウが最大化または復元されたとき、または重なり合ったウィンドウまたはポップアップ ウィンドウが閉じられている (アイコン化された) 場合、または開いている (画面に表示される) 場合、ウィンドウは非表示または表示されます。 重なるウィンドウが閉じられると、そのウィンドウに関連付けられているすべてのポップアップ ウィンドウは非表示になります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSize
フレームワークは、ウィンドウのサイズが変更された後にこのメンバー関数を呼び出します。
afx_msg void OnSize(
UINT nType,
int cx,
int cy);
パラメーター
nType
要求されたサイズ変更の種類を指定します。 このパラメーターには、次のいずれかの値を指定できます。
SIZE_MAXIMIZED
ウィンドウが最大化されました。SIZE_MINIMIZED
ウィンドウが最小化されました。SIZE_RESTORED
ウィンドウのサイズは変更されましたが、適用も適用もSIZE_MAXIMIZED
されていませんSIZE_MINIMIZED
。SIZE_MAXHIDE
他のウィンドウが最大化されると、すべてのポップアップ ウィンドウにメッセージが送信されます。SIZE_MAXSHOW
他のウィンドウが以前のサイズに復元されると、メッセージはすべてのポップアップ ウィンドウに送信されます。
cx
クライアント領域の新しい幅を指定します。
cy
クライアント領域の新しい高さを指定します。
注釈
SetScrollPos
または MoveWindow
メンバー関数が からOnSize
子ウィンドウに対して呼び出された場合、 bRedraw
または MoveWindow
のSetScrollPos
パラメーターを 0 以外にして、 CWnd
を再描画する必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
例
// Resize the edit control contained in the view to
// fill the entire view when the view's window is
// resized. CMdiView is a CView derived class.
void CMdiView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
// Resize edit to fill the whole view.
// OnSize can be called before OnInitialUpdate
// so make sure the edit control has been created.
if (::IsWindow(m_Edit.GetSafeHwnd()))
{
m_Edit.MoveWindow(0, 0, cx, cy);
}
}
CWnd::OnSizeClipboard
クリップボードの所有者の OnSizeClipboard
メンバー関数は、クリップボード ビューアーによって呼び出されます。クリップボードに 属性を持つ CF_OWNERDISPLAY
データが含まれており、クリップボード ビューアー ウィンドウのクライアント領域のサイズが変更された場合です。
afx_msg void OnSizeClipboard(
CWnd* pClipAppWnd,
HGLOBAL hRect);
パラメーター
pClipAppWnd
クリップボード アプリケーション ウィンドウを識別します。 ポインターは一時的な場合があり、格納しないでください。
hRect
グローバル メモリ オブジェクトを識別します。 メモリ オブジェクトには、 RECT
クリップボード所有者が描画する領域を指定するデータ構造が含まれています。
注釈
OnSizeClipboard
クリップボード アプリケーションが破棄または最小化されるときに、新しいサイズとして null 四角形 (0,0,0,0) を使用してメンバー関数が呼び出されます。 これにより、クリップボード所有者は表示リソースを解放できます。
内では OnSizeClipboard
、アプリケーションは Windows 関数を GlobalLock
使用して、データ構造を含むメモリをロックする RECT
必要があります。 制御を生成または返す前に、Windows 関数を GlobalUnlock
使用してそのメモリのロックを解除します。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSizing
フレームワークは、このメンバー関数を呼び出して、ユーザーが四角形のサイズを変更していることを示します。
afx_msg void OnSizing(
UINT nSide,
LPRECT lpRect);
パラメーター
nSide
移動するウィンドウの端。
lpRect
アイテムの座標を CRect
含む または RECT
構造体 のアドレス。
注釈
このメッセージを処理することで、アプリケーションはドラッグ四角形のサイズと位置を監視し、必要に応じてサイズまたは位置を変更できます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
例
void CSplitChildFrm::OnSizing(UINT fwSide, LPRECT pRect)
{
CMDIChildWnd::OnSizing(fwSide, pRect);
// Resize the splitter window in the frame. m_wndSplitter is of
// type CSplitterWnd
int nWidth = (pRect->right) - (pRect->left);
m_wndSplitter.SetColumnInfo(0, nWidth / 2, 10);
m_wndSplitter.SetColumnInfo(1, nWidth / 2, 10);
m_wndSplitter.RecalcLayout();
}
CWnd::OnSpoolerStatus
このフレームワークは、ジョブが Print Manager キューに追加または削除されるたびに、Print Manager からこのメンバー関数を呼び出します。
afx_msg void OnSpoolerStatus(
UINT nStatus,
UINT nJobs);
パラメーター
nStatus
フラグを指定します SP_JOBSTATUS
。
nJobs
印刷マネージャー キューに残っているジョブの数を指定します。
注釈
この呼び出しは情報提供のみを目的としています。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnStyleChanged
フレームワークは、関数が 1 つ以上のウィンドウのスタイルを SetWindowLong
変更した後に、このメンバー関数を呼び出します。
afx_msg void OnStyleChanged(
int nStyleType,
LPSTYLESTRUCT lpStyleStruct);
パラメーター
nStyleType
ウィンドウの拡張スタイルと意図しないスタイルのどちらを変更したかを指定します。 このパラメーターは、次の値と組み合わせて指定できます。
GWL_EXSTYLE
ウィンドウの拡張スタイルが変更されました。GWL_STYLE
ウィンドウの意図しないスタイルが変更されました。
lpStyleStruct
ウィンドウの STYLESTRUCT
新しいスタイルを含む構造体を指します。 アプリケーションはスタイルを調べることができますが、変更することはできません。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnStyleChanging
フレームワークは、関数が 1 つ以上の SetWindowLong
ウィンドウのスタイルを変更しようとしているときに、このメンバー関数を呼び出します。
afx_msg void OnStyleChanging(
int nStyleType,
LPSTYLESTRUCT lpStyleStruct);
パラメーター
nStyleType
ウィンドウの拡張スタイルと意図しないスタイルのどちらを変更したかを指定します。 このパラメーターは、次の値と組み合わせて指定できます。
GWL_EXSTYLE
ウィンドウの拡張スタイルが変更されました。GWL_STYLE
ウィンドウの意図しないスタイルが変更されました。
lpStyleStruct
ウィンドウの STYLESTRUCT
新しいスタイルを含む構造体を指します。 アプリケーションでは、スタイルを調べて変更できます。
注釈
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSysChar
フレームワークは、入力フォーカスがあり、 メッセージと WM_SYSKEYDOWN
メッセージが変換された場合CWnd
に、このメンバー関数をWM_SYSKEYUP
呼び出します。
afx_msg void OnSysChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
パラメーター
nChar
コントロール メニュー キーの ASCII 文字キー コードを指定します。
nRepCnt
ユーザーがキーを押したままにした結果としてキーストロークが繰り返される回数、つまり繰り返し回数を指定します。
nFlags
パラメーターには nFlags
、次の値を指定できます。
値 | 説明 |
---|---|
0-15 | 繰り返し数を指定します。 値は、ユーザーがキーを押した結果としてキーストロークが繰り返される回数です。 |
16-23 | スキャン コードを指定します。 値は、元の機器メーカー (OEM) によって異なります |
24 | キーが拡張キー (拡張 101 キーまたは 102 キー キーボードに表示される右側の Alt キーや Ctrl キーなど) かどうかを指定します。 拡張キーの場合、値は 1 です。それ以外の場合は 0 です。 |
25-28 | Windows によって内部的に使用されます。 |
29 | コンテキスト コードを指定します。 Alt キーを押しながら押すと、値は 1 になります。それ以外の場合、値は 0 です。 |
30 | 前のキーの状態を指定します。 メッセージが送信される前にキーがダウンしている場合は 1、キーがアップしている場合は 0 です。 |
31 | 遷移状態を指定します。 キーが解放されている場合は 1、キーが押されている場合は 0 です。 |
注釈
コントロール メニュー キーの仮想キー コードを指定します。 (標準の仮想キー コードの一覧については、「Winuser.h」を参照してください)
コンテキスト コードが 0 の場合は、 WM_SYSCHAR
メッセージを WM_SYSCHAR
Windows 関数に TranslateAccelerator
渡すことができます。これにより、システム文字キーではなく通常のキー メッセージであるかのように処理されます。 これにより、アクティブ ウィンドウに入力フォーカスがない場合でも、アクティブ ウィンドウでアクセラレータ キーを使用できます。
IBM Enhanced 101 および 102 キーのキーボードの場合、拡張キーはキーボードのメイン セクションで右 Alt キーと右 Ctrl キーです。テンキーの左側にあるクラスター内の INS、DEL、HOME、END、PAGE UP、PAGE DOWN、および方向キー。テンキーのスラッシュ (/) キーと ENTER キーを使用します。 その他の一部のキーボードでは、 で nFlags
拡張キー ビットがサポートされている場合があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSysColorChange
フレームワークは、システムの色設定で変更が行われたときに、すべての最上位ウィンドウに対してこのメンバー関数を呼び出します。
afx_msg void OnSysColorChange();
注釈
Windows は、システムの色の変更の影響を受ける任意のウィンドウを呼び出します OnSysColorChange
。
既存のシステム カラーを使用するブラシがあるアプリケーションでは、これらのブラシを削除し、新しいシステム カラーで再作成する必要があります。
CWnd::OnSysCommand
フレームワークは、ユーザーが [コントロール] メニューからコマンドを選択したとき、またはユーザーが [最大化] または [最小化] ボタンを選択したときに、このメンバー関数を呼び出します。
afx_msg void OnSysCommand(
UINT nID,
LPARAM lParam);
パラメーター
nID
要求されるシステム コマンドの種類を指定します。 このパラメーターには、次のいずれかの値を指定できます。
SC_CLOSE
オブジェクトをCWnd
閉じます。SC_HOTKEY
アプリケーション指定のCWnd
ホット キーに関連付けられているオブジェクトをアクティブ化します。 の下位ワードlParam
は、HWND
アクティブ化するウィンドウの を識別します。SC_HSCROLL
水平方向にスクロールします。SC_KEYMENU
キーストロークを使用してメニューを取得します。SC_MAXIMIZE
(またはSC_ZOOM
)オブジェクトを最大化しますCWnd
。SC_MINIMIZE
(またはSC_ICON
)オブジェクトを最小化しますCWnd
。SC_MOUSEMENU
マウス クリックでメニューを取得します。SC_MOVE
オブジェクトを移動しますCWnd
。SC_NEXTWINDOW
次のウィンドウに移動します。SC_PREVWINDOW
前のウィンドウに移動します。SC_RESTORE
ウィンドウを通常の位置とサイズに戻します。SC_SCREENSAVE
ファイルの [boot] セクションで指定されたスクリーン セーバー アプリケーションをSYSTEM.INI
実行します。SC_SIZE
オブジェクトのサイズを設定CWnd
します。SC_TASKLIST
Windows タスク マネージャー アプリケーションを実行またはアクティブ化します。SC_VSCROLL
垂直方向にスクロールします。
lParam
マウスを使用して Control-menu コマンドを選択した場合は、 lParam
カーソル座標が含まれます。 下位ワードには x 座標が含まれており、高次ワードには y 座標が含まれます。 それ以外の場合、このパラメーターは使用されません。
SC_HOTKEY
アプリケーション指定のホット キーに関連付けられているウィンドウをアクティブ化します。 の下位ワードlParam
は、アクティブ化するウィンドウを識別します。SC_SCREENSAVE
コントロール パネルの [デスクトップ] セクションで指定した画面保存アプリケーションを実行します。
注釈
既定では、 OnSysCommand
前の表で指定した定義済みのアクションに対して Control-menu 要求を実行します。
メッセージでは WM_SYSCOMMAND
、 パラメーターの 4 つの下位ビット nID
が Windows によって内部的に使用されます。 アプリケーションが の nID
値をテストするときは、ビットごとの AND 演算子を使用して、0xFFF0値と nID
値を組み合わせて正しい結果を取得する必要があります。
コントロール メニューのメニュー項目は、、AppendMenu
、InsertMenu
、および ModifyMenu
メンバー関数をGetSystemMenu
使用して変更できます。 [制御] メニューを変更するアプリケーションはメッセージを処理 WM_SYSCOMMAND
する必要があり WM_SYSCOMMAND
、アプリケーションによって処理されないメッセージは に OnSysCommand
渡す必要があります。 アプリケーションによって追加されたコマンド値は、アプリケーションによって処理される必要があり、 に OnSysCommand
渡すことはできません。
アプリケーションは、 にメッセージを渡すことによって、いつでも任意のシステム コマンドをWM_SYSCOMMAND
OnSysCommand
実行できます。
[コントロール] メニューから項目を選択するように定義されているアクセラレータ (ショートカット) キーストロークは呼び出しに OnSysCommand
変換され、他のすべてのアクセラレータ キーストロークはメッセージに WM_COMMAND
変換されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSysDeadChar
または OnSysKeyDown
メンバー関数が呼び出されたときにオブジェクトにCWnd
入力フォーカスがある場合、フレームワークはこのメンバー関数をOnSysKeyUp
呼び出します。
afx_msg void OnSysDeadChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
パラメーター
nChar
配信不能キー文字の値を指定します。
nRepCnt
繰り返し数を指定します。
nFlags
次の一覧に示すように、スキャン コード、キー遷移コード、以前のキー状態、コンテキスト コードを指定します。
値 | 説明 |
---|---|
0-7 | スキャン コード (OEM に依存する値)。 上位ワードの下位バイト。 |
8 | 拡張キー。ファンクション キーやテンキーのキー (拡張キーの場合は 1、それ以外の場合は 0)。 |
9-10 | 使用されていません。 |
11-12 | Windows によって内部的に使用されます。 |
13 | コンテキスト コード (Alt キーを押しながら押された場合は 1、それ以外の場合は 0)。 |
14 | 以前のキー状態 (キーが呼び出しの前にダウンしている場合は 1、キーがアップの場合は 0)。 |
15 | 遷移状態 (キーが解放されている場合は 1、キーが押されている場合は 0)。 |
注釈
デッド キーの文字値を指定します。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSysKeyDown
オブジェクトに CWnd
入力フォーカスがある場合、 OnSysKeyDown
ユーザーが Alt キーを押しながら別のキーを押すと、メンバー関数がフレームワークによって呼び出されます。
afx_msg void OnSysKeyDown(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
パラメーター
nChar
押されるキーの仮想キー コードを指定します。 標準の仮想キー コードの一覧については、「Winuser.h」を参照してください。
nRepCnt
繰り返し数を指定します。
nFlags
次の一覧に示すように、スキャン コード、キー遷移コード、以前のキー状態、コンテキスト コードを指定します。
値 | 説明 |
---|---|
0-7 | スキャン コード (OEM に依存する値)。 上位ワードの下位バイト。 |
8 | 拡張キー。ファンクション キーやテンキーのキー (拡張キーの場合は 1、それ以外の場合は 0)。 |
9-10 | 使用されていません。 |
11-12 | Windows によって内部的に使用されます。 |
13 | コンテキスト コード (Alt キーを押しながら押した場合は 1、それ以外の場合は 0)。 |
14 | 以前のキーの状態 (メッセージが送信される前にキーがダウンしている場合は 1、キーがアップの場合は 0)。 |
15 | 遷移状態 (キーが解放されている場合は 1、キーが押されている場合は 0)。 |
呼び出しの場合 OnSysKeyDown
、キー遷移ビット (ビット 15) は 0 です。 キーが押されている間に Alt キーがダウンしている場合、コンテキスト コード ビット (ビット 13) は 1 です。ウィンドウに入力フォーカスがないため、メッセージがアクティブ ウィンドウに送信される場合は 0 になります。
注釈
現在入力フォーカスを持つウィンドウがない場合は、アクティブなウィンドウの OnSysKeyDown
メンバー関数が呼び出されます。 メッセージを受け取る オブジェクトは CWnd
、 で nFlags
コンテキスト コードを確認することで、これら 2 つのコンテキストを区別できます。
コンテキスト コードが 0 の場合、 WM_SYSKEYDOWN
で OnSysKeyDown
受信したメッセージを Windows 関数に TranslateAccelerator
渡すことができます。これにより、システム キー メッセージではなく通常のキー メッセージであるかのように処理されます。 これにより、アクティブ ウィンドウに入力フォーカスがない場合でも、アクティブ ウィンドウでアクセラレータ キーを使用できます。
自動繰り返しのため、メッセージを受信する前に複数 OnSysKeyDown
の呼び出しが発生する WM_SYSKEYUP
可能性があります。 前のキー状態 (ビット 14) を使用して、呼び出しが最初の OnSysKeyDown
ダウン遷移を示すか、繰り返しダウン遷移を示すかを判断できます。
IBM Enhanced 101 および 102 キーのキーボードの場合、拡張キーはキーボードのメイン セクションで右 Alt キーと右 Ctrl キーです。テンキーの左側にあるクラスター 内の INS、 DEL、 HOME、 END、 PAGE UP、 PAGE DOWN、および方向キー。テンキーのスラッシュ (/) キーと Enter キーを 使用 します。 その他の一部のキーボードでは、 で nFlags
拡張キー ビットがサポートされている場合があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnSysKeyUp
オブジェクトに CWnd
フォーカスがある場合、 OnSysKeyUp
ALT キーが押されている間に押されたキーをユーザーが離すと、メンバー関数がフレームワークによって呼び出されます。
afx_msg void OnSysKeyUp(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
パラメーター
nChar
押されるキーの仮想キー コードを指定します。 標準の仮想キー コードの一覧については、次を参照してください。 Winuser.h
nRepCnt
繰り返し数を指定します。
nFlags
次の一覧に示すように、スキャン コード、キー遷移コード、以前のキー状態、コンテキスト コードを指定します。
値 | 説明 |
---|---|
0-7 | スキャン コード (OEM に依存する値)。 上位ワードの下位バイト。 |
8 | 拡張キー。ファンクション キーやテンキーのキー (拡張キーの場合は 1、それ以外の場合は 0)。 |
9-10 | 使用されていません。 |
11-12 | Windows によって内部的に使用されます。 |
13 | コンテキスト コード (Alt キーを押しながら押した場合は 1、それ以外の場合は 0)。 |
14 | 以前のキーの状態 (メッセージが送信される前にキーがダウンしている場合は 1、キーがアップの場合は 0)。 |
15 | 遷移状態 (キーが解放されている場合は 1、キーが押されている場合は 0)。 |
呼び出しの場合 OnSysKeyUp
、キー遷移ビット (ビット 15) は 1 です。 キーが押されている間に Alt キーがダウンしている場合、コンテキスト コード ビット (ビット 13) は 1 です。ウィンドウに入力フォーカスがないため、メッセージがアクティブ ウィンドウに送信される場合は 0 になります。
注釈
現在入力フォーカスを持つウィンドウがない場合は、アクティブなウィンドウの OnSysKeyUp
メンバー関数が呼び出されます。 呼び出しを受け取るオブジェクトは CWnd
、 で nFlags
コンテキスト コードを確認することで、これら 2 つのコンテキストを区別できます。
コンテキスト コードが 0 の場合、 WM_SYSKEYUP
で OnSysKeyUp
受信したメッセージを Windows 関数に TranslateAccelerator
渡すことができます。これにより、システム キー メッセージではなく通常のキー メッセージであるかのように処理されます。 これにより、アクティブ ウィンドウに入力フォーカスがない場合でも、アクティブ ウィンドウでアクセラレータ (ショートカット) キーを使用できます。
IBM Enhanced 101 および 102 キーのキーボードの場合、拡張キーはキーボードのメイン セクションで右 Alt キーと右 Ctrl キーです。テンキーの左側にあるクラスター内の INS、DEL、HOME、END、PAGE UP、PAGE DOWN、および方向キー。テンキーのスラッシュ (/) キーと ENTER キーを使用します。 他の一部のキーボードでは、 nFlags で拡張キー ビットがサポートされている場合があります。
米国以外の場合拡張された 102 キーキーボード、右 Alt キーは Ctrl + Alt キーの組み合わせとして処理されます。 ユーザーがこのキーを押して解放したときに発生するメッセージと呼び出しのシーケンスを次に示します。
Sequence | アクセスされた関数 | メッセージが渡されました |
---|---|---|
1. | WM_KEYDOWN |
VK_CONTROL |
2. | WM_KEYDOWN |
VK_MENU |
3. | WM_KEYUP |
VK_CONTROL |
4. | WM_SYSKEYUP |
VK_MENU |
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnTCard
フレームワークは、ユーザーが作成可能なボタンをクリックすると、このメンバー関数を呼び出します。
afx_msg void OnTCard(
UINT idAction,
DWORD dwActionData);
パラメーター
idAction
ユーザーが実行したアクションを示します。 このパラメーターには、次のいずれかの値を指定できます。
IDABORT
ユーザーが作成可能な [中止] ボタンをクリックしました。IDCANCEL
ユーザーが作成可能な [キャンセル] ボタンをクリックしました。IDCLOSE
ユーザーがトレーニング カードを閉じた。IDHELP
ユーザーが作成可能な Windows ヘルプ ボタンをクリックしました。IDIGNORE
ユーザーが作成可能な [無視] ボタンをクリックしました。IDOK
ユーザーが作成可能な [OK] ボタンをクリックしました。IDNO
ユーザーが作成可能な [いいえ] ボタンをクリックしました。IDRETRY
ユーザーが作成可能な [再試行] ボタンをクリックしました。HELP_TCARD_DATA
ユーザーが作成可能なボタンをクリックしました。 パラメーターにはdwActionData
、ヘルプ作成者によって指定された長整数が含まれています。HELP_TCARD_NEXT
ユーザーが作成可能な [次へ] ボタンをクリックしました。HELP_TCARD_OTHER_CALLER
別のアプリケーションがトレーニング カードを要求しました。IDYES
ユーザーが作成可能な [はい] ボタンをクリックしました。
dwActionData
が を指定しているHELP_TCARD_DATA
場合idAction
、このパラメーターはヘルプ作成者によって指定された長整数です。 それ以外の場合、このパラメーターは 0 です。
注釈
この関数は、アプリケーションが Windows ヘルプでトレーニング カードを開始した場合にのみ呼び出されます。 アプリケーションは、 関数の呼び出しで コマンドを HELP_TCARD
指定してトレーニング カードを WinHelp
開始します。
CWnd::OnTimeChange
フレームワークは、システム時刻の変更後にこのメンバー関数を呼び出します。
afx_msg void OnTimeChange();
注釈
システム時刻を変更するアプリケーションに、このメッセージをすべての最上位ウィンドウに送信するようにします。 すべての最上位ウィンドウにメッセージを送信 WM_TIMECHANGE
するために、アプリケーションでは、パラメーターが に設定された SendMessage
Windows 関数 hwnd
を HWND_BROADCAST
使用できます。
CWnd::OnTimer
フレームワークは、タイマーのインストールに使用されるメンバー関数で SetTimer
指定された間隔ごとに、このメンバー関数を呼び出します。
afx_msg void OnTimer(UINT_PTR nIDEvent);
パラメーター
nIDEvent
タイマーの識別子を指定します。
注釈
Windows 関数は DispatchMessage
、アプリケーションの WM_TIMER
メッセージ キューに他のメッセージがない場合にメッセージを送信します。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
例
「CWnd::SetTimer
」の例を参照してください。
CWnd::OnToolHitTest
フレームワークは、このメンバー関数を呼び出して、ポイントが指定したツールの外接する四角形内にあるかどうかを判断します。
virtual INT_PTR OnToolHitTest(
CPoint point,
TOOLINFO* pTI) const;
パラメーター
point
カーソルの x 座標と y 座標を指定します。 これらの座標は、常にウィンドウの左上隅を基準にしています
pTI
TOOLINFO
構造体へのポインター。 既定では、次の構造体の値が設定されます。
hwnd
=m_hWnd
ウィンドウへのハンドルuId
=(UINT)hWndChild
子ウィンドウへのハンドルuFlags
|=TTF_IDISHWND
ツールのハンドルlpszText
=LPSTR_TEXTCALLBACK
指定したウィンドウに表示される文字列へのポインター
戻り値
ツールヒント コントロールが見つかった場合は、ウィンドウ コントロール ID。 ツールヒント コントロールが見つからない場合は、-1。
注釈
ポイントが四角形内にある場合は、ツールに関する情報を取得します。
ツールヒントが関連付けられている領域がボタンでない場合は、OnToolHitTest
構造体フラグを と TTF_CENTERTIP
にTTF_NOTBUTTON
設定します。
をオーバーライド OnToolHitTest
して、既定で提供される情報とは異なる情報を提供します。
構造の詳細については TOOLINFO
、Windows SDK の を参照してください。
CWnd::OnTouchInput
Windows タッチからの 1 つの入力を処理します。
virtual BOOL OnTouchInput(
CPoint pt,
int nInputNumber,
int nInputsCount,
PTOUCHINPUT pInput);
パラメーター
pt
画面がタッチされたポイント (クライアント座標)。
nInputNumber
タッチ入力の数。
nInputsCount
タッチ入力の合計数。
pInput
TOUCHINPUT
構造体へのポインター。
戻り値
TRUE
アプリケーションが Windows タッチ入力を処理する場合。それ以外の場合 FALSE
は 。
注釈
CWnd::OnTouchInputs
Windows タッチからの入力を処理します。
virtual BOOL OnTouchInputs(
UINT nInputsCount,
PTOUCHINPUT pInputs);
パラメーター
nInputsCount
Windows タッチ入力の合計数。
pInputs
TOUCHINPUT
の配列。
戻り値
TRUE
アプリケーションが Windows タッチ入力を処理する場合。それ以外の場合 FALSE
は 。
注釈
CWnd::OnUniChar
フレームワークは、キーが押されたときにこのメンバー関数を呼び出します。 つまり、現在のウィンドウにはキーボード フォーカスがあり、 WM_KEYDOWN
メッセージは 関数によって TranslateMessage
変換されます。
afx_msg void OnUniChar(
UINT nChar,
UINT nRepCnt,
UINT nFlags);
パラメーター
nChar
[入力]押されたキーの文字コードを指定します。
nRepCnt
[入力]現在のメッセージの繰り返し数を指定します。 値は、ユーザーがキーを押した結果としてキーストロークが自動レプリケートされる回数です。 キーストロークが十分に長く保持されている場合は、複数のメッセージが送信されます。 ただし、繰り返し数は累積されません。
nFlags
[入力]次の表に示すように、スキャン コード、拡張キー、コンテキスト コード、以前のキー状態、および遷移状態を指定するフラグ。
フラグ ビット | 説明 |
---|---|
0-7 | スキャン コードを指定します。 値は、元の機器メーカー (OEM) によって異なります。 |
8 | 拡張キー (拡張 101 キーまたは 102 キー キーボードに表示される右側の Alt キーや Ctrl キーなど) を指定します。 キーが拡張キーの場合、フラグは 1 です。それ以外の場合は 0 です。 |
9-12 | Windows によって内部的に使用されます。 |
13 | コンテキスト コードを指定します。 Alt キーを押しながら押すと、フラグは 1 になります。それ以外の場合、値は 0 です。 |
14 前のキーの状態を指定します。 フラグは、メッセージが送信される前にキーがダウンしている場合は 1、キーが稼働している場合は 0 です。 | |
15 | 遷移状態を指定します。 フラグは、キーが解放されている場合は 1、キーが押されている場合は 0 です。 |
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_UNICHAR
。 この WM_UNICHAR
メッセージは、Unicode 文字を ANSI ウィンドウに送信またはポストするように設計されています。 これはメッセージと WM_CHAR
同じですが、Unicode 変換形式 -32 エンコード (UTF-32) を使用します WM_CHAR
が、メッセージでは UTF-16 が使用されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnUnInitMenuPopup
ドロップダウン メニューまたはサブメニューが破棄されると、フレームワークはこのメンバー関数を呼び出します。
afx_msg void OnUnInitMenuPopup(
CMenu* pPopupMenu,
UINT nFlags);
パラメーター
pMenu
[入力]メニューまたはサブメニューを CMenu
表すオブジェクトへのポインター。
nFlags
[入力]破棄されたメニュー。 現時点では、ウィンドウ メニュー MF_SYSMENU
にのみできます。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_UNINITMENUPOPUP
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnUpdateUIState
指定したウィンドウとすべての子ウィンドウのユーザー インターフェイス (UI) 状態を変更するときに呼び出されます。
afx_msg void OnUpdateUIState(
UINT nAction,
UINT nUIElement);
パラメーター
nAction
実行する操作を指定します。 値は、次のいずれかです。
UIS_CLEAR
UI 状態要素 (でnUIElement
指定) は非表示にする必要があります。UIS_INITIALIZE
UI 状態要素 (でnUIElement
指定) は、最後の入力イベントに基づいて変更する必要があります。 詳細については、 の 「解説 」セクションWM_UPDATEISTATE
を参照してください。UIS_SET
UI 状態要素 (でnUIElement
指定) を表示する必要があります。
nUIElement
影響を受ける UI 状態要素またはコントロールのスタイルを指定します。 値は、次のいずれかです。
UISF_HIDEACCEL
キーボード アクセラレータ。UISF_HIDEFOCUS
フォーカス インジケーター。UISF_ACTIVE
Windows XP: コントロールは、アクティブなコントロールに使用されるスタイルで描画する必要があります。
注釈
このメンバー関数は、Windows SDK で説明されているように、メッセージの WM_UPDATEUISTATE
機能をエミュレートします。
CWnd::OnUserChanged
フレームワークは、ユーザーがログオンまたはログオフした後、すべてのウィンドウに対してこのメンバーを呼び出します。
afx_msg void OnUserChanged();
注釈
このメソッドは、Windows SDK で説明されている通知メッセージを受け取ります WM_USERCHANGED
。 ユーザーがログオンまたはログオフすると、オペレーティング システムによってユーザー固有の設定が更新されます。 設定を更新した直後に、このメッセージが送信されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnVKeyToItem
オブジェクトがスタイルをCWnd
持つリスト ボックスをLBS_WANTKEYBOARDINPUT
所有している場合、リスト ボックスはメッセージに応答してメッセージをWM_KEYDOWN
送信WM_VKEYTOITEM
します。
afx_msg int OnVKeyToItem(
UINT nKey,
CListBox* pListBox,
UINT nIndex);
パラメーター
nKey
ユーザーが押したキーの仮想キー コードを指定します。 標準の仮想キー コードの一覧については、次を参照してください。 Winuser.h
pListBox
リスト ボックスへのポインターを指定します。 ポインターは一時的なものであり、後で使用するために格納しないでください。
nIndex
現在のキャレット位置を指定します。
戻り値
メッセージに応答してアプリケーションが実行したアクションを指定します。 戻り値 -2 は、アプリケーションがアイテムの選択のすべての側面を処理し、リスト ボックスによるそれ以上のアクションを必要としなかったことを示します。 戻り値 -1 は、リスト ボックスがキーストロークに応答して既定のアクションを実行する必要があることを示します。 戻り値 0 以上は、リスト ボックス内の項目の 0 から始まるインデックスを指定し、リスト ボックスが指定されたアイテムに対してキーストロークの既定のアクションを実行する必要があることを示します。
注釈
このメンバー関数は、スタイルを持つ LBS_HASSTRINGS
リスト ボックスに対してのみフレームワークによって呼び出されます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnVScroll
フレームワークは、ユーザーがウィンドウの垂直スクロール バーをクリックすると、このメンバー関数を呼び出します。
afx_msg void OnVScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar);
パラメーター
nSBCode
ユーザーのスクロール要求を示すスクロール バー コードを指定します。 このパラメーターには、次のいずれかを指定できます。
SB_BOTTOM
一番下までスクロールします。SB_ENDSCROLL
スクロールを終了します。SB_LINEDOWN
1 行下にスクロールします。SB_LINEUP
1 行上にスクロールします。SB_PAGEDOWN
1 ページ下にスクロールします。SB_PAGEUP
1 ページ上にスクロールします。SB_THUMBPOSITION
絶対位置までスクロールします。 現在の位置は でnPos
提供されます。SB_THUMBTRACK
スクロール ボックスを指定した位置にドラッグします。 現在の位置は でnPos
提供されます。SB_TOP
上にスクロールします。
nPos
スクロール バー コードが または SB_THUMBTRACK
の場合は、現在のスクロール ボックス位置を格納します。それ以外の場合はSB_THUMBPOSITION
使用されません。 最初のスクロール範囲によっては、 が負の値になる場合があり、 nPos
必要に応じて にキャストする int
必要があります。
pScrollBar
スクロール メッセージがスクロール バー コントロールから送信された場合は、コントロールへのポインターが含まれます。 ユーザーがウィンドウのスクロール バーをクリックした場合、このパラメーターは です NULL
。 ポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
OnVScroll
通常は、スクロール ボックスのドラッグ中にフィードバックを提供するアプリケーションで使用されます。
オブジェクトの内容をスクロールするCWnd
場合OnVScroll
は、メンバー関数を使用してスクロール ボックスの位置もリセットするSetScrollPos
必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnVScrollClipboard
クリップボード の所有者の OnVScrollClipboard
メンバー関数は、クリップボード のデータ CF_OWNERDISPLAY
の形式が設定されていて、クリップボード ビューアーの垂直スクロール バーにイベントがある場合に、クリップボード ビューアーによって呼び出されます。
afx_msg void OnVScrollClipboard(
CWnd* pClipAppWnd,
UINT nSBCode,
UINT nPos);
パラメーター
pClipAppWnd
クリップボード ビューアー ウィンドウへのポインターを指定します。 ポインターは一時的な場合があり、後で使用するために格納しないでください。
nSBCode
次のいずれかのスクロール バー値を指定します。
SB_BOTTOM
一番下までスクロールします。SB_ENDSCROLL
スクロールを終了します。SB_LINEDOWN
1 行下にスクロールします。SB_LINEUP
1 行上にスクロールします。SB_PAGEDOWN
1 ページ下にスクロールします。SB_PAGEUP
1 ページ上にスクロールします。SB_THUMBPOSITION
絶対位置までスクロールします。 現在の位置は でnPos
提供されます。SB_TOP
上にスクロールします。
nPos
スクロール バー コードが の場合はスクロール ボックスの位置を SB_THUMBPOSITION
格納します。それ以外の場合 nPos
は使用されません。
注釈
所有者はクリップボードイメージをスクロールし、適切なセクションを無効にして、スクロールバーの値を更新する必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnWindowMaximizedChanged
フレームワークは、現在のウィンドウが最大化され、ウィンドウがデスクトップ ウィンドウ マネージャー (DWM) によって構成されている場合に、このメンバーを呼び出します。
afx_msg void OnWindowMaximizedChanged(BOOL bIsMaximized);
パラメーター
bIsMaximized
[入力] TRUE
現在のウィンドウが最大化されている FALSE
場合は 、最大化されていない場合は 。
注釈
このメソッドは、Windows SDK で説明されている通知メッセージを受け取ります WM_DWMWINDOWMAXIMIZEDCHANGE
。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnWindowPosChanged
フレームワークは、メンバー関数または別のウィンドウ管理機能の呼び出しの結果として、サイズ、位置、または Z オーダーが変更されたときに、このメンバー関数を SetWindowPos
呼び出します。
afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);
パラメーター
lpwndpos
ウィンドウの WINDOWPOS
新しいサイズと位置に関する情報を含むデータ構造を指します。
注釈
既定の実装では、 WM_SIZE
メッセージと WM_MOVE
メッセージがウィンドウに送信されます。 アプリケーションが基底クラスを呼び出さずに呼び出しを処理する場合、 OnWindowPosChanged
これらのメッセージは送信されません。 基底クラスを呼び出さずに、 の呼び出し中に移動またはサイズ変更処理を OnWindowPosChanged
実行する方が効率的です。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnWindowPosChanging
フレームワークは、メンバー関数または別のウィンドウ管理機能の呼び出しの結果として、サイズ、位置、または Z オーダーが変更されようとしているときに、このメンバー関数を SetWindowPos
呼び出します。
afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);
パラメーター
lpwndpos
ウィンドウの WINDOWPOS
新しいサイズと位置に関する情報を含むデータ構造を指します。
注釈
アプリケーションは、構造体のメンバー内の適切なビットを設定またはクリアすることで、ウィンドウの変更をflags
WINDOWPOS
防ぐことができます。
または WS_THICKFRAME
スタイルを持つウィンドウのWS_OVERLAPPED
場合、既定の実装では、ウィンドウにメッセージが送信WM_GETMINMAXINFO
されます。 これは、ウィンドウの新しいサイズと位置を検証し、 および CS_BYTEALIGN
クライアント スタイルを適用CS_BYTEALIGNCLIENT
するために行われます。 アプリケーションでは、基本クラスを呼び出さないでこの機能をオーバーライドできます。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnWinIniChange
フレームワークは、 WIN.INI
Windows 初期化ファイル に変更が加えられた後、このメンバー関数を呼び出します。
afx_msg void OnWinIniChange(LPCTSTR lpszSection);
パラメーター
lpszSection
変更されたセクションの名前を指定する文字列を指します。 (文字列には、セクション名を囲む角かっこは含まれません)。
注釈
Windows 関数はSystemParametersInfo
、アプリケーションが 関数を使用してファイルの設定を変更した後に をWIN.INI
呼び出しますOnWinIniChange
。
すべての最上位ウィンドウにメッセージを送信 WM_WININICHANGE
するために、アプリケーションでは、パラメーターが に設定された SendMessage
Windows 関数 hwnd
を HWND_BROADCAST
使用できます。
アプリケーションで複数の異なるセクションを同時に WIN.INI
変更する場合、アプリケーションは を に設定して 1 つの WM_WININICHANGE
メッセージを lpszSection
送信する NULL
必要があります。 それ以外の場合、アプリケーションは に変更を行うたびに を送信 WM_WININICHANGE
する WIN.INI
必要があります。
が にNULL
設定された呼び出しをOnWinIniChange
アプリケーションがlpszSection
受信した場合、アプリケーションは、アプリケーションに影響を与えるWIN.INI内のすべてのセクションを確認する必要があります。
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnWndMsg
このメンバー関数は、 によって WindowProc
呼び出されるか、メッセージリフレクション中に呼び出されます。
virtual BOOL OnWndMsg(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
パラメーター
message
送信するメッセージを指定します。
wParam
追加のメッセージ依存情報を指定します。
lParam
追加のメッセージ依存情報を指定します。
pResult
の WindowProc
戻り値。 メッセージによって異なります。には を指定できます NULL
。
戻り値
メッセージが処理された場合は TRUE。それ以外の場合は FALSE。
注釈
OnWndMsg
はメッセージの種類を決定し、適切なフレームワーク関数 (たとえば、 など) を呼び出すか、 OnCommand
WM_COMMAND
メッセージ マップで適切なメッセージを検索します。
メッセージ リフレクションの詳細については、「 反映されたメッセージの処理」を参照してください。
CWnd::OnXButtonDblClk
フレームワークは、ユーザーがダブルクリックしたとき、またはXBUTTON2
カーソルがウィンドウのXBUTTON1
クライアント領域にあるときに、このメンバー関数を呼び出します。
afx_msg void OnXButtonDblClk(
UINT nFlags,
UINT nButton,
CPoint point);
パラメーター
nFlags
[入力]どの修飾子キーが押されたかを示すフラグのビットごとの組み合わせ (OR)。 たとえば、 フラグは MK_CONTROL
Ctrl キーが押されていることを示します。
nButton
[入力]最初の Microsoft Intellimouse X ボタンがダブルクリックされている場合は の XBUTTON1
値。2 つ目の X ボタンがダブルクリックされている場合は XBUTTON2。
point
[入力] CPoint
クライアント領域の左上隅を x
基準にしたカーソルの 座標と y
座標を指定する オブジェクト。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_XBUTTONDBLCLK
。 マウスがキャプチャされていない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが投稿されます。
パラメーターには nFlags
、次の表に示す修飾子キーの組み合わせを指定できます。 詳細については、「 マウス入力について」を参照してください。
修飾子キー | 説明 |
---|---|
MK_CONTROL |
Ctrl キーが押されます。 |
MK_LBUTTON |
マウスの左ボタンが押された状態です。 |
MK_MBUTTON |
マウスの中央ボタンが押された状態です。 |
MK_RBUTTON |
マウスの右ボタンが押された状態です。 |
MK_SHIFT |
Shift キーが押されます。 |
MK_XBUTTON1 |
XBUTTON1 Microsoft IntelliMouse のマウス ボタンが押されます。 |
MK_XBUTTON2 |
XBUTTON2 Microsoft IntelliMouse のマウス ボタンが押されます。 |
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnXButtonDown
フレームワークは、ユーザーが を押XBUTTON1
XBUTTON2
すか、カーソルがウィンドウのクライアント領域にあるときに、このメンバー関数を呼び出します。
afx_msg void OnXButtonDown(
UINT nFlags,
UINT nButton,
CPoint point);
パラメーター
nFlags
[入力]どの修飾子キーが押されたかを示すフラグのビットごとの組み合わせ (OR)。 たとえば、 フラグは MK_CONTROL
Ctrl キーが押されていることを示します。
nButton
[入力]最初の XBUTTON1
Microsoft Intellimouse X ボタンがクリックされた場合、または XBUTTON2
2 番目の X ボタンがクリックされた場合は、 の値。
point
[入力] CPoint
クライアント領域の左上隅を x
基準にしたカーソルの 座標と y
座標を指定する オブジェクト。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_XBUTTONDOWN
。 マウスがキャプチャされていない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが投稿されます。
パラメーターには nFlags
、次の表に示す修飾子キーの組み合わせを指定できます。 詳細については、「 マウス入力について」を参照してください。
修飾子キー | 説明 |
---|---|
MK_CONTROL |
Ctrl キーが押されます。 |
MK_LBUTTON |
マウスの左ボタンが押された状態です。 |
MK_MBUTTON |
マウスの中央ボタンが押された状態です。 |
MK_RBUTTON |
マウスの右ボタンが押された状態です。 |
MK_SHIFT |
Shift キーが押されます。 |
MK_XBUTTON1 |
XBUTTON1 Microsoft IntelliMouse のマウス ボタンが押されます。 |
MK_XBUTTON2 |
XBUTTON2 Microsoft IntelliMouse のマウス ボタンが押されます。 |
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OnXButtonUp
フレームワークは、ユーザーが解放 XBUTTON1
するとき、または XBUTTON2
カーソルがウィンドウのクライアント領域にあるときに、このメンバー関数を呼び出します。
afx_msg void OnXButtonUp(
UINT nFlags,
UINT nButton,
CPoint point);
パラメーター
nFlags
[入力]どの修飾子キーが押されたかを示すフラグのビットごとの組み合わせ (OR)。 たとえば、 フラグは MK_CONTROL
Ctrl キーが押されていることを示します。
nButton
[入力]最初の XBUTTON1
Microsoft Intellimouse X ボタンがダブルクリックされた場合、または XBUTTON2
2 番目の X ボタンがダブルクリックされた場合は、 の値。
point
[入力] CPoint
クライアント領域の左上隅を x
基準にしたカーソルの 座標と y
座標を指定する オブジェクト。
注釈
このメソッドは、Windows SDK で説明されている通知を受け取ります WM_XBUTTONUP
。 マウスがキャプチャされていない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合は、マウスをキャプチャしたウィンドウにメッセージが投稿されます。
パラメーターには nFlags
、次の表に示す修飾子キーの組み合わせを指定できます。 詳細については、「 マウス入力について」を参照してください。
修飾子キー | 説明 |
---|---|
MK_CONTROL |
Ctrl キーが押されます。 |
MK_LBUTTON |
マウスの左ボタンが押された状態です。 |
MK_MBUTTON |
マウスの中央ボタンが押された状態です。 |
MK_RBUTTON |
マウスの右ボタンが押された状態です。 |
MK_SHIFT |
Shift キーが押されます。 |
MK_XBUTTON1 |
XBUTTON1 Microsoft IntelliMouse のマウス ボタンが押されます。 |
MK_XBUTTON2 |
XBUTTON2 Microsoft IntelliMouse のマウス ボタンが押されます。 |
注意
このメンバー関数は、アプリケーションで Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。 関数に渡されるパラメーターは、メッセージを受信したときにフレームワークが受信したパラメーターを反映します。 この関数の基底クラス実装を呼び出す場合、その実装は、関数に指定したパラメーターではなく、メッセージと共に渡されたパラメーターを使用します。
CWnd::OpenClipboard
クリップボードを開きます。
BOOL OpenClipboard();
戻り値
を使用して CWnd
クリップボードを開く場合は 0 以外、別のアプリケーションまたはウィンドウでクリップボードが開いている場合は 0。
注釈
他のアプリケーションは、Windows 関数が呼び出されるまでクリップボードを CloseClipboard
変更できません。
現在の CWnd
オブジェクトは、Windows 関数が呼び出されるまでクリップボードの EmptyClipboard
所有者になりません。
例
//handler for Edit | Copy menu
void CMdiView::OnEditCopy()
{
if (!OpenClipboard())
{
AfxMessageBox(_T("Cannot open the Clipboard"));
return;
}
// Remove the current Clipboard contents
if (!EmptyClipboard())
{
AfxMessageBox(_T("Cannot empty the Clipboard"));
return;
}
// Get the currently selected data, hData handle to
// global memory of data
CString str;
m_Edit.GetWindowText(str);
size_t cbStr = (str.GetLength() + 1) * sizeof(TCHAR);
HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, cbStr);
memcpy_s(GlobalLock(hData), cbStr, str.LockBuffer(), cbStr);
GlobalUnlock(hData);
str.UnlockBuffer();
// For the appropriate data formats...
UINT uiFormat = (sizeof(TCHAR) == sizeof(WCHAR)) ? CF_UNICODETEXT : CF_TEXT;
if (::SetClipboardData(uiFormat, hData) == NULL)
{
AfxMessageBox(_T("Unable to set Clipboard data"));
CloseClipboard();
return;
}
CloseClipboard();
}
CWnd::operator HWND
オブジェクトへのハンドルを取得するには、この演算子を CWnd
使用します。
operator HWND() const;
CWnd::operator !=
2 つの CWnd
オブジェクトを比較して、同じ m_hWnd
を持たないかどうかを判断します。
BOOL operator!=(const CWnd& wnd) const;
パラメーター
wnd
CWnd
オブジェクトへの参照です。
戻り値
等しい場合は 0 以外。それ以外の場合は 0。
CWnd::operator ==
2 つの CWnd
オブジェクトを比較して、同じ m_hWnd
を持っているかどうかを判断します。
BOOL operator==(const CWnd& wnd) const;
パラメーター
wnd
CWnd
オブジェクトへの参照です。
戻り値
等しい場合は 0 以外。それ以外の場合は 0。
CWnd::PaintWindowlessControls
コントロール コンテナーのウィンドウなしのコントロールを描画します。
BOOL PaintWindowlessControls(CDC* pDC);
パラメーター
pDC
ウィンドウなしのコントロールを描画するデバイス コンテキスト。
戻り値
TRUE
コントロール コンテナーがあり、ウィンドウなしのコントロールが正常に描画された場合は を返します。それ以外の場合FALSE
は を返します。
CWnd::PostMessage
ウィンドウのメッセージ キューにメッセージを配置し、対応するウィンドウがメッセージを処理するのを待たずに を返します。
BOOL PostMessage(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
パラメーター
message
投稿するメッセージを指定します。
wParam
追加のメッセージ情報を指定します。 このパラメーターの内容は、投稿されるメッセージによって異なります。
lParam
追加のメッセージ情報を指定します。 このパラメーターの内容は、投稿されるメッセージによって異なります。
戻り値
メッセージが投稿される場合は 0 以外。それ以外の場合は 0。
注釈
メッセージ キュー内のメッセージは、 または PeekMessage
Windows 関数のGetMessage
呼び出しによって取得されます。
Windows PostMessage
関数を使用して、別のアプリケーションにアクセスできます。
例
AfxGetMainWnd
の例を参照してください。
CWnd::PostNcDestroy
ウィンドウが破棄された後、既定 OnNcDestroy
のメンバー関数によって呼び出されます。
virtual void PostNcDestroy();
注釈
派生クラスは、ポインターの削除などのカスタム クリーンアップにこの関数を this
使用できます。
CWnd::PreCreateWindow
この CWnd
オブジェクトにアタッチされている Windows ウィンドウを作成する前に、フレームワークによって呼び出されます。
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
パラメーター
cs
CREATESTRUCT
構造。
戻り値
ウィンドウの作成を続行する必要がある場合は 0 以外。作成エラーを示す場合は 0。
解説
警告
CWnd::PreCreateWindow
メニューNULL
が で、スタイルに が含まれているWS_CHILD
場合、ポインターに this
hMenu メンバーcs
が割り当てられます。 適切な機能を実現するには、ダイアログ コントロールに ではない ID があることを NULL
確認します。
この変更により、マネージド/ネイティブ相互運用シナリオでのクラッシュが修正されます。 の TRACE
ステートメントは CWnd::Create
、開発者に問題の警告を表示します。
この関数を直接呼び出すことはありません。
この関数の既定の実装では、ウィンドウ クラス名が NULL
チェックされ、適切な既定値に置き換えられます。 ウィンドウが作成される前に構造体を変更するには、 CREATESTRUCT
このメンバー関数をオーバーライドします。
から CWnd
派生した各クラスは、 のオーバーライドに独自の PreCreateWindow
機能を追加します。 設計上、 の PreCreateWindow
これらの派生は文書化されていません。 各クラスに適したスタイルとスタイル間の相互依存関係を確認するには、アプリケーションの基本クラスの MFC ソース コードを調べることができます。 オーバーライド PreCreateWindow,
を選択した場合は、MFC ソース コードから収集された情報を使用して、アプリケーションの基本クラスで使用されるスタイルが必要な機能を提供するかどうかを判断できます。
ウィンドウ スタイルの変更の詳細については、「 MFC によって作成されたウィンドウのスタイルの変更」を参照してください。
例
// alter the styles of the mdi frame window
BOOL CMdiChildFrame::PreCreateWindow(CREATESTRUCT &cs)
{
// Create a window without min/max buttons or sizable border
cs.style |= WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;
// Size the window to 1/3 screen size and center it
cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 3;
cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;
cs.y = ((cs.cy * 3) - cs.cy) / 2;
cs.x = ((cs.cx * 3) - cs.cx) / 2;
return CMDIChildWnd::PreCreateWindow(cs);
}
CWnd::PreSubclassWindow
このメンバー関数はフレームワークによって呼び出され、ウィンドウがサブクラス化される前に他の必要なサブクラス化を行うことができます。
virtual void PreSubclassWindow();
注釈
このメンバー関数をオーバーライドすると、コントロールの動的サブクラス化が可能になります。 これは高度なオーバーライド可能です。
CWnd::PreTranslateMessage
および Windows 関数にディスパッチされる前に、ウィンドウ メッセージを変換するために TranslateMessage
DispatchMessage
クラスCWinApp
によって使用されます。
virtual BOOL PreTranslateMessage(MSG* pMsg);
パラメーター
pMsg
処理する MSG
メッセージを含む構造体を指します。
戻り値
メッセージが翻訳され、ディスパッチされない場合は 0 以外。メッセージが翻訳されておらず、ディスパッチする必要がある場合は 0。
CWnd::Print
このメンバー関数を呼び出して、指定されたデバイス コンテキストで現在のウィンドウを描画します。これは、プリンター デバイス コンテキストで最も一般的です。
void Print(
CDC* pDC,
DWORD dwFlags) const;
パラメーター
pDC
デバイス コンテキストへのポインター。
dwFlags
描画オプションを指定します。 このパラメーターには、次のフラグを 1 つ以上指定できます。
PRF_CHECKVISIBLE
ウィンドウが表示されている場合にのみ、ウィンドウを描画します。PRF_CHILDREN
表示されているすべての子ウィンドウを描画します。PRF_CLIENT
ウィンドウのクライアント領域を描画します。PRF_ERASEBKGND
ウィンドウを描画する前に背景を消去します。PRF_NONCLIENT
ウィンドウの非クライアント領域を描画します。PRF_OWNED
所有されているすべてのウィンドウを描画します。
注釈
CWnd::DefWindowProc
関数は、指定された描画オプションに基づいてこのメッセージを処理します。
が指定されていて、ウィンドウが表示されない場合
PRF_CHECKVISIBLE
は、何も行わないでください。が指定されている場合
PRF_NONCLIENT
は、指定されたデバイス コンテキストで非クライアント領域を描画します。が指定されている場合
PRF_ERASEBKGND
は、ウィンドウにメッセージをWM_ERASEBKGND
送信します。が指定されている場合
PRF_CLIENT
は、ウィンドウにメッセージをWM_PRINTCLIENT
送信します。が設定されている場合
PRF_CHILDREN
は、表示されている各子ウィンドウにメッセージをWM_PRINT
送信します。が設定されている場合
PRF_OWNED
は、表示されている各所有ウィンドウにメッセージをWM_PRINT
送信します。
CWnd::PrintClient
このメンバー関数を呼び出して、指定したデバイス コンテキスト (通常はプリンター デバイス コンテキスト) にウィンドウを描画します。
void PrintClient(
CDC* pDC,
DWORD dwFlags) const;
パラメーター
pDC
デバイス コンテキストへのポインター。
dwFlags
描画オプションを指定します。 このパラメーターには、次のフラグを 1 つ以上指定できます。
PRF_CHECKVISIBLE
ウィンドウが表示されている場合にのみ、ウィンドウを描画します。PRF_CHILDREN
表示されているすべての子ウィンドウを描画します。PRF_CLIENT
ウィンドウのクライアント領域を描画します。PRF_ERASEBKGND
ウィンドウを描画する前に背景を消去します。PRF_NONCLIENT
ウィンドウの非クライアント領域を描画します。PRF_OWNED
所有されているすべてのウィンドウを描画します。
CWnd::PrintWindow
表示されているウィンドウを指定されたデバイス コンテキスト (通常はプリンター DC) にコピーします。
BOOL PrintWindow(
CDC* pDC,
UINT nFlags) const;
パラメーター
pDC
印刷するデバイス コンテキストへのポインター。
nFlags
描画オプションを指定します。 有効な値の一覧については、「PrintWindow
」を参照してください。
戻り値
関数が正常終了した場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 PrintWindow
の機能をエミュレートします。
CWnd::RedrawWindow
指定したウィンドウのクライアント領域で、指定した四角形または領域を更新します。
BOOL RedrawWindow(
LPCRECT lpRectUpdate = NULL,
CRgn* prgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);
パラメーター
lpRectUpdate
更新四角形のRECT
座標を含む構造体を指します。 有効なリージョン ハンドルが含まれている場合 prgnUpdate
、このパラメーターは無視されます。
prgnUpdate
更新リージョンを識別します。 と lpRectUpdate
の両方prgnUpdate
が の場合、NULL
クライアント領域全体が更新リージョンに追加されます。
flags
ウィンドウを無効にするには、次のフラグを使用します。
RDW_ERASE
ウィンドウが再描画されたときに、WM_ERASEBKGND
ウィンドウにメッセージを受信します。 フラグもRDW_INVALIDATE
指定する必要があります。それ以外の場合RDW_ERASEは無効です。RDW_FRAME
更新領域と交差するウィンドウの非クライアント領域の任意の部分にメッセージを受信WM_NCPAINT
します。 フラグもRDW_INVALIDATE
指定する必要があります。それ以外の場合RDW_FRAME
は無効です。RDW_INTERNALPAINT
ウィンドウに無効なWM_PAINT
領域が含まれているかどうかに関係なく、メッセージがウィンドウに投稿されます。RDW_INVALIDATE
またはprgnUpdate
を無効にしますlpRectUpdate
(無効にできるのは 1 つだけですNULL
)。 両方が のNULL
場合、ウィンドウ全体が無効になります。
ウィンドウの検証には、次のフラグが使用されます。
RDW_NOERASE
保留中WM_ERASEBKGND
のメッセージを抑制します。RDW_NOFRAME
保留中WM_NCPAINT
のメッセージを抑制します。 このフラグは と共にRDW_VALIDATE
使用する必要があり、通常は と共RDW_NOCHILDREN
に使用されます。 このオプションは、ウィンドウの一部が正しく描画されない可能性があるため、注意して使用する必要があります。RDW_NOINTERNALPAINT
保留中の内部WM_PAINT
メッセージを抑制します。 このフラグは、無効な領域に起因するメッセージには影響WM_PAINT
しません。RDW_VALIDATE
または を検証しますlpRectUpdate
prgnUpdate
(1 つだけを検証できませんNULL
)。 両方が の場合、NULL
ウィンドウ全体が検証されます。 このフラグは、内部WM_PAINT
メッセージには影響しません。
次のフラグは、再描画が行われるときに制御されます。 描画は、これらのビットのいずれかが指定されていない限り、 RedrawWindow
関数によって実行されません。
RDW_ERASENOW
関数が戻る前に、(およびRDW_NOCHILDREN
フラグでRDW_ALLCHILDREN
指定されている) 影響を受けるウィンドウが、必要に応じて メッセージとWM_ERASEBKGND
メッセージを受信WM_NCPAINT
します。WM_PAINT
メッセージは遅延されます。RDW_UPDATENOW
関数が戻る前に、影響を受けるウィンドウ (および フラグでRDW_ALLCHILDREN
指定) が、必要に応じて、メッセージを受信WM_NCPAINT
WM_ERASEBKGND
WM_PAINT
します。RDW_NOCHILDREN
既定では、関数の影響を受けるウィンドウはWS_CLIPCHILDREN
、RedrawWindow
指定されたウィンドウにスタイルがあるかどうかによって異なります。 ウィンドウの WS_CLIPCHILDREN
子ウィンドウは影響を受けません。 ただし、ウィンドウ以外 WS_CLIPCHILDREN
のウィンドウは、ウィンドウが検出されるまで WS_CLIPCHILDREN
再帰的に検証または無効化されます。 次のフラグは、関数の影響を受けるウィンドウを RedrawWindow
制御します。
RDW_ALLCHILDREN
再描画操作に子ウィンドウ (存在する場合) が含まれます。RDW_NOCHILDREN
再描画操作から子ウィンドウ (存在する場合) を除外します。
戻り値
ウィンドウが正常に再描画された場合は 0 以外。それ以外の場合は 0。
注釈
メンバー関数を RedrawWindow
使用してデスクトップ ウィンドウの一部を無効にすると、そのウィンドウはメッセージを WM_PAINT
受信しません。 デスクトップを再描画するには、アプリケーションで 、、、CWnd::UpdateWindow
または をCWnd::InvalidateRgn
使用CWnd::ValidateRgn
する必要がありますRedrawWindow
CWnd::ReflectChildNotify
このメッセージ関数は、 から OnChildNotify
フレームワークによって呼び出されます。
BOOL ReflectChildNotify(
UINT message,
WPARAM wParam,
LPARAM lParam,
LRESULT* pResult);
パラメーター
message
反映するメッセージを指定します。
wParam
追加のメッセージ依存情報を指定します。
lParam
追加のメッセージ依存情報を指定します。
pResult
親ウィンドウから返される子ウィンドウによって生成された結果。 NULL
の可能性があります。
戻り値
TRUE
メッセージが反映された場合。それ以外の場合 FALSE
は 。
注釈
これは、そのソースに反映 message
されるヘルパー関数です。
反映されたメッセージは、 または CCmdTarget::OnCmdMsg
にCWnd::OnWndMsg
直接送信されます。
メッセージ リフレクションの詳細については、「 反映されたメッセージの処理」を参照してください。
CWnd::ReflectLastMsg
このメンバー関数は、子ウィンドウに最後のメッセージを反映するためにフレームワークによって呼び出されます。
static BOOL PASCAL ReflectLastMsg(
HWND hWndChild,
LRESULT* pResult = NULL);
パラメーター
hWndChild
子ウィンドウへのハンドル。
pResult
親ウィンドウから返される子ウィンドウによって生成された結果。 NULL
の可能性があります。
戻り値
メッセージが処理された場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数は、 によってhWndChild
識別されるウィンドウが OLE コントロールまたは永続的なマップ内のウィンドウである場合に を呼び出SendChildNotifyLastMsg
します。
メッセージ リフレクションの詳細については、「 反映されたメッセージの処理」を参照してください。
CWnd::ReleaseDC
デバイス コンテキストを解放し、他のアプリケーションで使用できるようにします。
int ReleaseDC(CDC* pDC);
パラメーター
pDC
解放するデバイス コンテキストを識別します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
メンバー関数の ReleaseDC
効果は、デバイス コンテキストの種類によって異なります。
アプリケーションは、メンバー関数の ReleaseDC
呼び出しごとにメンバー関数を呼び出し、 GetWindowDC
メンバー関数の呼び出しごとにメンバー関数を GetDC
呼び出す必要があります。
CWnd::RepositionBars
ウィンドウのクライアント領域のコントロール バーの位置を変更およびサイズ変更するために呼び出されます。
void RepositionBars(UINT nIDFirst,
UINT nIDLast,
UINT nIDLeftOver,
UINT nFlag = reposDefault,
LPRECT lpRectParam = NULL,
LPCRECT lpRectClient = NULL,
BOOL bStretch = TRUE) ;
パラメーター
nIDFirst
位置を変更およびサイズ変更するコントロール バーの範囲の最初の の ID。
nIDLast
位置を変更およびサイズ変更するコントロール バーの範囲の最後の ID。
nIDLeftOver
クライアント領域の残りの部分を塗りつぶすペインの ID を指定します。
nFlag
次のいずれかの値になります。
CWnd::reposDefault
コントロール バーのレイアウトを実行します。lpRectParam
は使用されておらず、 を指定NULL
できます。CWnd::reposQuery
コントロール バーのレイアウトは行われません。代わりにlpRectParam
、レイアウトが実際に行われたかのように、クライアント領域のサイズで初期化されます。CWnd::reposExtra
のlpRectParam
値を のクライアント領域nIDLast
に追加し、レイアウトも実行します。
lpRectParam
構造体をRECT
指します。の使用は のnFlag
値によって異なります。
lpRectClient
使用可能なクライアント領域をRECT
含む構造体を指します。 の場合 NULL
は、ウィンドウのクライアント領域が使用されます。
bStretch
バーをフレームのサイズまで拡大するかどうかを示します。
注釈
パラメーターと nIDLast
パラメーターはnIDFirst
、クライアント領域で再配置するコントロール バー ID の範囲を定義します。 パラメーターは nIDLeftOver
、子ウィンドウ (通常はビュー) の ID を指定します。この ID は、コントロール バーで塗りつぶされていないクライアント領域の残りの部分を埋めるように再配置およびサイズ変更されます。
CWnd::RunModalLoop
が返されるまで ContinueModal
メッセージを取得、翻訳、またはディスパッチするには、このメンバー関数を呼び出します FALSE
。
int RunModalLoop(DWORD dwFlags = 0);
パラメーター
dwFlags
送信する Windows メッセージを指定します。 値は、次のいずれかです。
MLF_NOIDLEMSG
親にメッセージを送信WM_ENTERIDLE
しないでください。MLF_NOKICKIDLE
ウィンドウにメッセージを送信WM_KICKIDLE
しないでください。MLF_SHOWONIDLE
メッセージ キューがアイドル状態になったときにウィンドウを表示します。
戻り値
メンバー関数に nResult
渡されるパラメーターの値を EndModalLoop
指定します。この値を使用してモーダル ループを終了します。
注釈
既定では、 ContinueModal
は が呼び出された後EndModalLoop
に を返しますFALSE
。 として nResult
指定された値を に EndModalLoop
返します。
CWnd::ScreenToClient
ディスプレイ上の指定された点または四角形の画面座標をクライアント座標に変換します。
void ScreenToClient(LPPOINT lpPoint) const; void ScreenToClient(LPRECT lpRect) const;
パラメーター
lpPoint
変換する CPoint
画面座標を含むオブジェクトまたは POINT
構造体 を指します。
lpRect
変換する CRect
画面座標を含むオブジェクトまたは RECT
構造体 を指します。
注釈
メンバー関数はScreenToClient
、 または lpRect
で指定された画面座標をクライアント座標にlpPoint
置き換えます。 新しい座標は、クライアント領域の左上隅を基準にしています CWnd
。
例
CListCtrl::GetItemRect
の例を参照してください。
CWnd::ScrollWindow
現在 CWnd
のオブジェクトのクライアント領域の内容をスクロールします。
void ScrollWindow(
int xAmount,
int yAmount,
LPCRECT lpRect = NULL,
LPCRECT lpClipRect = NULL);
パラメーター
xAmount
水平スクロールの量をデバイス単位で指定します。 このパラメーターは、左にスクロールするには負の値である必要があります。
yAmount
垂直スクロールの量をデバイス単位で指定します。 このパラメーターは、上にスクロールするには負の値である必要があります。
lpRect
スクロールする CRect
クライアント領域の部分を指定するオブジェクトまたは RECT
構造体 を指します。 が のNULL
場合lpRect
、クライアント領域全体がスクロールされます。 カーソルの四角形がスクロール四角形と交差する場合、キャレットは再配置されます。
lpClipRect
スクロールする CRect
クリッピング四角形を指定するオブジェクトまたは RECT
構造体を指します。 この四角形内のビットのみがスクロールされます。 この四角形の外側のビットは、四角形内にある場合でも影響を lpRect
受けません。 が NULL
の場合lpClipRect
、スクロール四角形に対してクリッピングは実行されません。
注釈
キャレットがスクロール中の CWnd
場合は、 ScrollWindow
キャレットを自動的に非表示にして、キャレットが消去されないようにしてから、スクロールが完了した後にキャレットを復元します。 キャレットの位置はそれに応じて調整されます。
メンバー関数によって ScrollWindow
検出された領域は再描画されませんが、現在 CWnd
のオブジェクトの更新領域に結合されます。 アプリケーションは最終的に、リージョンで WM_PAINT
再描画が必要であることを通知するメッセージを受け取ります。 スクロールが行われると同時に、未発見の領域を再描画するには、 を呼び出した直後にメンバー関数を UpdateWindow
呼び出 ScrollWindow
します。
が の場合lpRect
、ウィンドウ内の子ウィンドウの位置は、 および yAmount
でxAmount
指定された量だけオフセットされ、 内CWnd
の無効な (未描画の) 領域もオフセットNULL
されます。 ScrollWindow
が の場合 lpRect
、より高速になります NULL
。
が でないNULL
場合lpRect
、子ウィンドウの位置は変更されず、 内のCWnd
無効な領域はオフセットされません。 が でない場合に問題がlpRect
更新されないようにNULL
するには、 を呼び出す前にメンバー関数をUpdateWindow
呼び出ScrollWindow
して再描画CWnd
します。
CWnd::ScrollWindowEx
ウィンドウのクライアント領域の内容をスクロールします。
int ScrollWindowEx(
int dx,
int dy,
LPCRECT lpRectScroll,
LPCRECT lpRectClip,
CRgn* prgnUpdate,
LPRECT lpRectUpdate,
UINT flags);
パラメーター
dx
水平スクロールの量をデバイス単位で指定します。 このパラメーターは、左にスクロールするために負の値を持っている必要があります。
dy
垂直スクロールの量をデバイス単位で指定します。 このパラメーターは、上にスクロールするには負の値を持っている必要があります。
lpRectScroll
スクロールするRECT
クライアント領域の部分を指定する構造体を指します。 このパラメーターが の場合、 NULL
クライアント領域全体がスクロールされます。
lpRectClip
スクロールする RECT
クリッピング四角形を指定する構造体を指します。 この構造体は、 が lpRectScroll
指す四角形よりも優先されます。 この四角形内のビットのみがスクロールされます。 この四角形の外側のビットは、四角形内にある場合でも影響を lpRectScroll
受けません。 このパラメーターが の場合、 NULL
スクロール四角形に対してクリッピングは実行されません。
prgnUpdate
スクロールによって無効にされた領域を保持するように変更されたリージョンを識別します。 このパラメーターは NULL
の場合もあります。
lpRectUpdate
RECT
スクロールによって無効にされた四角形の境界を受け取る構造体を指します。 このパラメーターは NULL
の場合もあります。
flags
次のいずれかの値になります。
SW_ERASE
でSW_INVALIDATE
指定すると、ウィンドウにメッセージを送信WM_ERASEBKGND
することで、新しく無効になったリージョンが消去されます。SW_INVALIDATE
スクロール後に でprgnUpdate
識別された領域を無効にします。SW_SCROLLCHILDREN
と で指定されたピクセル数でlpRectScroll
指される四角形と交差するすべての子ウィンドウをdx
dy
スクロールします。 Windows は、WM_MOVE
移動しない場合でも、交差lpRectScroll
するすべての子ウィンドウにメッセージを送信します。 子ウィンドウがスクロールされ、カーソルの四角形がスクロール四角形と交差すると、キャレットの位置が変更されます。
戻り値
関数が成功した場合、戻り値は SIMPLEREGION
(四角形の無効化領域) COMPLEXREGION
、(非四角形の無効化領域、重複する四角形)、または NULLREGION
(無効な領域がない) です。それ以外の場合、戻り値は です ERROR
。
注釈
この関数は 関数に似ていますが ScrollWindow
、いくつかの追加機能があります。
と SW_ERASE
を指定しない場合SW_INVALIDATE
、ScrollWindowEx
メンバー関数はスクロール先の領域を無効にしません。 これらのフラグのいずれかが設定されている場合、 ScrollWindowEx
この領域は無効になります。 領域は、アプリケーションがメンバー関数を呼び出すか、メンバー関数を呼び出UpdateWindow
すか (または RDW_ERASENOW
を指定RDW_UPDATENOW
)、またはアプリケーション キューからメッセージをWM_PAINT
取得RedrawWindow
するまで更新されません。
ウィンドウにスタイルがあるWS_CLIPCHILDREN
場合は、 および lpRectUpdate
でprgnUpdate
指定された返された領域は、更新が必要な子ウィンドウ内の領域を含め、更新する必要があるスクロール ウィンドウの合計領域を表します。
フラグが SW_SCROLLCHILDREN
指定されている場合、子ウィンドウの一部がスクロールされた場合、Windows は画面を適切に更新しません。 スクロールされた子ウィンドウのソース四角形の外側にある部分は消去されず、新しいコピー先に正しく描画されません。 Windows 関数を DeferWindowPos
使用して、四角形内に完全に配置されていない子ウィンドウを lpRectScroll
移動します。 フラグが設定され、キャレット四角形がスクロール四角形と交差する場合 SW_SCROLLCHILDREN
、カーソルは再配置されます。
すべての入力座標と出力座標 ( lpRectScroll
、 lpRectClip
、 lpRectUpdate
、および prgnUpdate
の場合) は、ウィンドウ CS_OWNDC
に または CS_CLASSDC
クラス スタイルがあるかどうかに関係なく、クライアント座標内にあると見なされます。 必要に応じて、 LPtoDP
関数と DPtoLP
Windows 関数を使用して、論理座標との間で変換します。
CWnd::SendChildNotifyLastMsg
このメンバー関数は、親ウィンドウから子ウィンドウに通知メッセージを提供するためにフレームワークによって呼び出され、子ウィンドウがタスクを処理できるようにします。
BOOL SendChildNotifyLastMsg(LRESULT* pResult = NULL);
パラメーター
pResult
親ウィンドウから返される子ウィンドウによって生成される結果。
戻り値
子ウィンドウが親に送信されたメッセージを処理した場合は 0 以外。それ以外の場合は 0。
注釈
SendChildNotifyLastMsg
が反映されたメッセージである場合は、ソースに現在のメッセージを送信します。
メッセージリフレクションの詳細については、「 反映されたメッセージの処理」を参照してください。
CWnd::SendDlgItemMessage
コントロールにメッセージを送信します。
LRESULT SendDlgItemMessage(
int nID,
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
パラメーター
nID
メッセージを受信するダイアログ コントロールの識別子を指定します。
message
送信するメッセージを指定します。
wParam
追加のメッセージ依存情報を指定します。
lParam
追加のメッセージ依存情報を指定します。
戻り値
コントロールのウィンドウ プロシージャによって返される値を指定します。コントロールが見つからなかった場合は 0 を指定します。
注釈
メンバー関数は SendDlgItemMessage
、メッセージが処理されるまで戻りません。
を使用 SendDlgItemMessage
することは、指定されたコントロールに対して CWnd
* を取得し、メンバー関数を呼び出すこと SendMessage
と同じです。
例
void CMyDlg::SetSpinRange()
{
//set the min and max range of the up/down or spin control
SendDlgItemMessage(IDC_SPIN1, UDM_SETRANGE, 0, (LPARAM)MAKELONG(8, 1));
}
CWnd::SendMessage
指定したメッセージをこのウィンドウに送信します。
LRESULT SendMessage(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0);
パラメーター
message
送信するメッセージを指定します。
wParam
追加のメッセージ依存情報を指定します。
lParam
追加のメッセージ依存情報を指定します。
戻り値
メッセージ処理の結果。その値は、送信されたメッセージによって異なります。
注釈
メンバー関数は SendMessage
ウィンドウ プロシージャを直接呼び出し、そのウィンドウ プロシージャがメッセージを処理するまで戻りません。 これは、メッセージをウィンドウの PostMessage
メッセージ キューに配置し、すぐに返すメンバー関数とは対照的です。
例
void CAboutDlg::OnPaint()
{
// This code, normally emitted by the Application Wizard for a dialog-
// based project for the dialog's WM_PAINT handler, runs only if the
// window is iconic. The window erases the icon's area, then
// paints the icon referenced by m_hIcon.
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM)dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
CWnd::SendMessageToDescendants
指定した Windows メッセージをすべての子孫ウィンドウに送信するには、このメンバー関数を呼び出します。
void SendMessageToDescendants(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0,
BOOL bDeep = TRUE,
BOOL bOnlyPerm = FALSE);
パラメーター
message
送信するメッセージを指定します。
wParam
追加のメッセージ依存情報を指定します。
lParam
追加のメッセージ依存情報を指定します。
bDeep
検索するレベルを指定します。 の場合 TRUE
は、すべての子を再帰的に検索します。の場合 FALSE
は、直接の子のみを検索します。
bOnlyPerm
メッセージを一時ウィンドウで受信するかどうかを指定します。 の場合 TRUE
、一時ウィンドウはメッセージを受信できます。場合は FALSE
、永続的なウィンドウのみがメッセージを受信します。 一時的なウィンドウの詳細については、「 テクニカル ノート 3」を参照してください。
注釈
が FALSE
の場合bDeep
、メッセージはウィンドウの直接の子だけに送信されます。それ以外の場合は、すべての子孫ウィンドウにメッセージが送信されます。
と bOnlyPerm
が のTRUE
場合bDeep
、検索は一時的なウィンドウの下で続行されます。 この場合、検索中に検出された永続的なウィンドウのみがメッセージを受信します。 が FALSE
の場合bDeep
、メッセージはウィンドウの直接の子にのみ送信されます。
例
// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.
// change font of child controls of a dialog
LOGFONT lf = {0};
// redraw of child controls not needed in OnInitDialog
// since controls aren't drawn yet.
short int fRedraw = FALSE;
lf.lfHeight = 15; // Request a 15-pixel-high font
// with face name "Arial".
wcscpy_s(lf.lfFaceName, LF_FACESIZE, _T("Arial"));
m_font.CreateFontIndirect(&lf); // Create the font.
SendMessageToDescendants(WM_SETFONT,
(WPARAM)m_font.m_hObject, //handle to font
MAKELONG((WORD)fRedraw, 0),
FALSE); // send to all descendants(TRUE) or
// just children of *this (FALSE)
CWnd::SendNotifyMessage
指定したメッセージをウィンドウに送信します。
BOOL SendNotifyMessage(
UINT message,
WPARAM wParam,
LPARAM lParam);
パラメーター
message
送信するメッセージを指定します。
wParam
追加のメッセージ依存情報を指定します。
lParam
追加のメッセージ依存情報を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
呼び出し元のスレッドによってウィンドウが作成された場合は、 SendNotifyMessage
ウィンドウのウィンドウ プロシージャを呼び出し、ウィンドウ プロシージャがメッセージを処理するまで戻りません。 ウィンドウが別のスレッドによって作成された場合は、 SendNotifyMessage
メッセージをウィンドウ プロシージャに渡して直ちに返します。ウィンドウ プロシージャがメッセージの処理を完了するまで待機しません。
CWnd::SetActiveWindow
アクティブ ウィンドウを作成 CWnd
します。
CWnd* SetActiveWindow();
戻り値
以前にアクティブだったウィンドウ。
返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
メンバー関数は SetActiveWindow
、アプリケーションがアクティブ ウィンドウと入力フォーカスを任意に引き継ぐので、注意して使用する必要があります。 通常、Windows はすべてのアクティブ化を処理します。
CWnd::SetCapture
カーソルの位置に関係なく、後続のすべてのマウス入力を現在 CWnd
のオブジェクトに送信します。
CWnd* SetCapture();
戻り値
以前にすべてのマウス入力を受け取ったウィンドウ オブジェクトへのポインター。 そのようなウィンドウがない場合です NULL
。 返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
すべてのマウス入力が不要になった場合 CWnd
、他のウィンドウがマウス入力を ReleaseCapture
受け取ることができるように、アプリケーションは 関数を呼び出す必要があります。
マウス入力がキャプチャされている間は、アクティブ ウィンドウにメッセージが送信されませんWM_NCHITTEST
WM_SETCURSOR
。
CWnd::SetCaretPos
キャレットの位置を設定します。
static void PASCAL SetCaretPos(POINT point);
パラメーター
point
キャレットの新しい x 座標と y 座標をクライアント座標で指定します。
注釈
メンバー関数は SetCaretPos
、キャレットが現在のタスクのウィンドウによって所有されている場合にのみ移動します。 SetCaretPos
キャレットが非表示になっているかどうかに関係なく、キャレットを移動します。
キャレットは共有リソースです。 キャレットを所有していない場合、ウィンドウはキャレットを移動しないでください。
例
// The following code snippet shows a caret when the left
// mouse button is pressed, and sets the caret's position to
// the cursor's position.
void CMyView::OnLButtonDown(UINT nFlags, CPoint point)
{
//create a solid caret, the width is 2, the length is 20.
CreateSolidCaret(2, 20);
SetCaretPos(point);
ShowCaret();
CView::OnLButtonDown(nFlags, point);
}
CWnd::SetClipboardViewer
クリップボードの内容が変更されるたびに (メッセージによって WM_DRAWCLIPBOARD
) 通知されるウィンドウのチェーンにこのウィンドウを追加します。
HWND SetClipboardViewer();
戻り値
成功した場合は、クリップボード ビューアー チェーン内の次のウィンドウへのハンドル。 アプリケーションでは、このハンドルを保存し (メンバー変数として格納できます)、クリップボード ビューアー チェーン メッセージに応答するときに使用する必要があります。
注釈
クリップボード ビューアー チェーンの一部であるウィンドウは、および メッセージにWM_DRAWCLIPBOARD
WM_CHANGECBCHAIN
応答しWM_DESTROY
、メッセージをチェーン内の次のウィンドウに渡す必要があります。
このメンバー関数は、ウィンドウに WM_DRAWCLIPBOARD
メッセージを送信します。 クリップボード ビューアー チェーン内の次のウィンドウへのハンドルはまだ返されていないため、アプリケーションは への呼び出しSetClipboardViewer
中にWM_DRAWCLIPBOARD
受信したメッセージを渡すべきではありません。
クリップボード ビューアー チェーンからそれ自体を削除するには、アプリケーションでメンバー関数を ChangeClipboardChain
呼び出す必要があります。
CWnd::SetDlgCtrlID
ウィンドウのウィンドウ ID またはコントロール ID を新しい値に設定します。
int SetDlgCtrlID(int nID);
パラメーター
nID
コントロールの識別子に設定する新しい値。
戻り値
成功した場合は、ウィンドウの前の識別子。それ以外の場合は 0。
注釈
ウィンドウには、ダイアログ ボックス内のコントロールだけでなく、任意の子ウィンドウを指定できます。 ウィンドウを最上位のウィンドウにすることはできません。
CWnd::SetDlgItemInt
ダイアログ ボックス内の特定のコントロールのテキストを、指定した整数値の文字列表現に設定します。
void SetDlgItemInt(
int nID,
UINT nValue,
BOOL bSigned = TRUE);
パラメーター
nID
変更するコントロールの整数 ID を指定します。
nValue
項目テキストの生成に使用する整数値を指定します。
bSigned
整数値が符号付きか符号なしかを指定します。 このパラメーターが の場合、 TRUE
nValue
は署名されます。 このパラメーターが で TRUE
nValue
が 0 未満の場合は、文字列の最初の桁の前にマイナス記号が配置されます。 このパラメーターが の場合、 FALSE
nValue
は符号なしです。
注釈
SetDlgItemInt
は、指定された WM_SETTEXT
コントロールにメッセージを送信します。
例
CWnd::SetDlgItemText
の例を参照してください。
CWnd::SetDlgItemText
ウィンドウまたはダイアログ ボックスが所有するコントロールのキャプションまたはテキストを設定します。
void SetDlgItemText(
int nID,
LPCTSTR lpszString);
パラメーター
nID
テキストを設定するコントロールを識別します。
lpszString
コントロールにコピーする CString
テキストを含むオブジェクトまたは null で終わる文字列を指します。
注釈
SetDlgItemText
は、指定された WM_SETTEXT
コントロールにメッセージを送信します。
例
// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.
// Initialize dialog controls
SetDlgItemText(IDC_EDITNAME, _T("Type in text"));
SetDlgItemInt(IDC_EDITNUM, 100);
CWnd::SetForegroundWindow
ウィンドウを作成したスレッドをフォアグラウンドに置き、そのウィンドウをアクティブにします。
BOOL SetForegroundWindow();
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
キーボード入力がウィンドウに送られ、ユーザーに対してさまざまな視覚的な手掛かりが変更されます。 フォアグラウンド ウィンドウは、ユーザーが現在作業しているウィンドウです。 フォアグラウンド ウィンドウは、最上位のウィンドウ (フレーム ウィンドウまたはダイアログ ボックス) にのみ適用されます。
例
CWnd::FindWindow
の例を参照してください。
CWnd::SetFocus
入力フォーカスを要求します。
CWnd* SetFocus();
戻り値
以前に入力フォーカスを持っていたウィンドウ オブジェクトへのポインター。 そのようなウィンドウがない場合です NULL
。 返されるポインターは一時的な場合があり、格納しないでください。
注釈
入力フォーカスは、後続のすべてのキーボード入力をこのウィンドウに移動します。 以前に入力フォーカスを持っていたウィンドウでは、そのウィンドウは失われます。
メンバー関数は SetFocus
、 WM_KILLFOCUS
入力フォーカスを失うメッセージをウィンドウに送信し、入力フォーカスを WM_SETFOCUS
受け取るウィンドウにメッセージを送信します。 また、ウィンドウまたはその親のいずれかをアクティブにします。
現在のウィンドウがアクティブで、フォーカスがない場合 (つまり、フォーカスを持つウィンドウがない場合)、押されたキーを押すと、メッセージ WM_SYSCHAR
、 WM_SYSKEYDOWN
、または WM_SYSKEYUP
が生成されます。
CWnd::SetFont
指定したフォントを WM_SETFONT
使用するメッセージをウィンドウに送信します。
void SetFont(
CFont* pFont,
BOOL bRedraw = TRUE);
パラメーター
pFont
CFont
オブジェクトへのポインター。
bRedraw
TRUE
ウィンドウがメッセージを処理した直後に再描画する場合は WM_SETFONT
。それ以外の場合 FALSE
は 。
注釈
ウィンドウがメッセージを処理しない限り、このメソッドは WM_SETFONT
無効です。 メッセージのメッセージ ハンドラーWM_SETFONT
を含む定義済みのウィンドウ クラスにアタッチされているため、このメッセージの処理からCWnd
派生する多くの MFC クラス。 このメソッドを使用するには、派生元 CWnd
のクラスでメッセージのメソッド ハンドラーを定義する WM_SETFONT
必要があります。
CWnd::SetIcon
によって識別される特定のアイコンにハンドルを設定するには、このメンバー関数を hIcon
呼び出します。
HICON SetIcon(
HICON hIcon,
BOOL bBigIcon);
パラメーター
hIcon
前のアイコンへのハンドル。
bBigIcon
の場合は、32 ピクセル x 32 ピクセルのアイコンを指定します。の場合TRUE
FALSE
は、16 ピクセル x 16 ピクセルのアイコンを指定します。
戻り値
アイコンにへのハンドル。
注釈
ウィンドウ クラスが登録されると、アイコンが選択されます。
例
CWnd::GetSystemMenu
の例を参照してください。
CWnd::SetLayeredWindowAttributes
レイヤード ウィンドウの不透明度および透明度のカラー キーを設定します。
BOOL SetLayeredWindowAttributes(
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags);
パラメーター
crKey
レイヤード ウィンドウの COLORREF
作成時に使用する透明度の色キーを指定する値へのポインター。 この色のウィンドウによって塗りつぶされたすべてのピクセルは透明になります。 を COLORREF
生成するには、 マクロを使用します RGB
。
bAlpha
レイヤード ウィンドウの不透明度を表すために使用されるアルファ値。 詳細については、 構造体の メンバーに SourceConstantAlpha
関するページを BLENDFUNCTION
参照してください。 が 0 の場合 bAlpha
、ウィンドウは完全に透明になります。 が 255 の場合 bAlpha
、ウィンドウは不透明です。
dwFlags
実行するアクションを指定します。 このパラメーターには、次の 1 つ以上の値を指定できます。 有効な値の一覧については、「SetLayeredWindowAttributes
」を参照してください。
戻り値
関数が正常終了した場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 SetLayeredWindowAttributes
の機能をエミュレートします。
CWnd::SetMenu
現在のメニューを指定したメニューに設定します。
BOOL SetMenu(CMenu* pMenu);
パラメーター
pMenu
新しいメニューを識別します。 このパラメーターが の場合、 NULL
現在のメニューは削除されます。
戻り値
メニューが変更された場合は 0 以外。それ以外の場合は 0。
注釈
メニューの変更を反映するようにウィンドウを再描画します。
SetMenu
は前のメニューを破棄しません。 このタスクを実行するには、アプリケーションで CMenu::DestroyMenu
メンバー関数を呼び出す必要があります。
例
CMenu::LoadMenu
の例を参照してください。
CWnd::SetOwner
現在のウィンドウの所有者を指定したウィンドウ オブジェクトに設定します。
void SetOwner(CWnd* pOwnerWnd);
パラメーター
pOwnerWnd
ウィンドウ オブジェクトの新しい所有者を識別します。 このパラメーターが の NULL
場合、ウィンドウ オブジェクトには所有者がありません。
注釈
この所有者は、現在のウィンドウ オブジェクトからコマンド メッセージを受信できます。 既定では、現在のウィンドウの親は所有者です。
多くの場合、ウィンドウ階層とは関係のないウィンドウ オブジェクト間の接続を確立すると便利です。 たとえば、 CToolBar
親ではなく所有者に通知を送信します。 これにより、ツール バーは、別のウィンドウ (インプレース フレーム ウィンドウなど) に通知を送信しながら、1 つのウィンドウ (OLE コンテナー アプリケーション ウィンドウなど) の子になります。 さらに、インプレース編集中にサーバー ウィンドウが非アクティブ化またはアクティブ化されると、フレーム ウィンドウが所有するウィンドウは非表示または表示されます。 この所有権は、 の呼び出しで明示的に SetOwner
設定されます。
この関数の所有権の概念は、 の所有権の GetWindow
概念とは異なります。
CWnd::SetParent
子ウィンドウの親ウィンドウを変更します。
CWnd* SetParent(CWnd* pWndNewParent);
パラメーター
pWndNewParent
新しい親ウィンドウを識別します。
戻り値
成功した場合は、前の親ウィンドウ オブジェクトへのポインター。 返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
子ウィンドウが表示されている場合、Windows は適切な再描画と再描画を実行します。
CWnd::SetProperty
このメンバー関数を呼び出して、 で指定された OLE コントロール プロパティを dwDispID
設定します。
void AFX_CDECL SetProperty(
DISPID dwDispID,
VARTYPE vtProp, ...);
パラメーター
dwDispID
設定するプロパティを識別します。
vtProp
設定するプロパティの型を指定します。 使用可能な値については、 の「解説」セクションを COleDispatchDriver::InvokeHelper
参照してください。
...
vtProp
によって指定された型の 1 つのパラメーターです。
注釈
注意
この関数は、OLE コントロールを CWnd
表すオブジェクトでのみ呼び出す必要があります。
OLE コントロール コンテナーでこのメンバー関数を使用する方法の詳細については、「 ActiveX コントロール コンテナー: ActiveX コントロール コンテナーでの ActiveX コントロールのプログラミング」を参照してください。
CWnd::SetRedraw
アプリケーションは を呼び出 SetRedraw
して、変更の再描画を許可するか、変更が再描画されないようにします。
void SetRedraw(BOOL bRedraw = TRUE);
パラメーター
bRedraw
再描画フラグの状態を指定します。 このパラメーターが の場合、 TRUE
再描画フラグが設定されます。の場合 FALSE
、フラグはクリアされます。
注釈
このメンバー関数は、再描画フラグを設定またはクリアします。 再描画フラグがクリアされている間は、変更のたびに内容は更新されず、再描画フラグが設定されるまで再描画されません。 たとえば、リスト ボックスに複数の項目を追加する必要があるアプリケーションでは、再描画フラグをクリアし、項目を追加してから、再描画フラグを設定できます。 最後に、アプリケーションで または InvalidateRect
メンバー関数をInvalidate
呼び出して、リスト ボックスを再描画できます。
例
// Updating a control or window with large amounts of data may cause
// flicker. In such cases it may be better to turn off drawing
//m_list is a member of type CListCtrl
m_List.SetRedraw(FALSE); // turn drawing off regardless of list mode
//
// Update control
//
m_List.SetRedraw(TRUE); // turn drawing back on and update the window
// invalidate the entire control, force painting
m_List.Invalidate();
m_List.UpdateWindow();
CWnd::SetScrollInfo
このメンバー関数を呼び出して、構造体がスクロール バーに SCROLLINFO
関して保持する情報を設定します。
BOOL SetScrollInfo(
int nBar,
LPSCROLLINFO lpScrollInfo,
BOOL bRedraw = TRUE);
パラメーター
nBar
スクロール バーがコントロールであるか、ウィンドウの非クライアント領域の一部であるかを指定します。 非クライアント領域の一部である場合、nBar は、スクロール バーが水平方向、垂直方向、またはその両方に配置されているかどうかを示します。 次のいずれかである必要があります。
SB_CTL
スクロール バー コントロールのパラメーターを格納します。 データ メンバーはm_hWnd
、スクロール バー コントロールのハンドルである必要があります。SB_HORZ
ウィンドウが水平スクロール バーであることを指定します。SB_VERT
ウィンドウが垂直スクロール バーであることを指定します。
lpScrollInfo
SCROLLINFO
構造体へのポインター。 この構造の詳細については、Windows SDK を参照してください。
bRedraw
新しい位置を反映するようにスクロール バーを再描画するかどうかを指定します。 が のTRUE
場合bRedraw
、スクロール バーが再描画されます。 の場合、 FALSE
再描画されません。 既定では、スクロール バーが再描画されます。
戻り値
成功した場合、戻り値は です TRUE
。 それ以外の場合は、FALSE
となります。
注釈
構造体には SCROLLINFO
、スクロール バーに関する情報が含まれます。これには、スクロールの最小位置と最大位置、ページ サイズ、スクロール ボックスの位置 (親指) が含まれます。 構造の既定値の SCROLLINFO
変更の詳細については、Windows SDK の構造に関するトピックを参照してください。
スクロール バーの位置を示す MFC Windows メッセージ ハンドラー と CWnd::OnVScroll
は、 CWnd::OnHScroll
16 ビットの位置データのみを提供します。 GetScrollInfo
SetScrollInfo
32 ビットのスクロール バー位置データを提供します。 したがって、アプリケーションは、 または CWnd::OnVScroll
のいずれかをCWnd::OnHScroll
処理中に を呼び出GetScrollInfo
して、32 ビットのスクロール バー位置データを取得できます。
注意
CWnd::GetScrollInfo
を使用すると、アプリケーションで 32 ビットのスクロール バー位置を使用できます。
CWnd::SetScrollPos
スクロール ボックスの現在位置を設定し、要求された場合は、スクロール ボックスの新しい位置を反映するようにスクロール バーを再描画します。
int SetScrollPos(
int nBar,
int nPos,
BOOL bRedraw = TRUE);
パラメーター
nBar
設定するスクロール バーを指定します。 このパラメーターには、次のいずれかを指定できます。
SB_HORZ
ウィンドウの水平スクロール バー内のスクロール ボックスの位置を設定します。SB_VERT
ウィンドウの垂直スクロール バー内のスクロール ボックスの位置を設定します。
nPos
スクロール ボックスの新しい位置を指定します。 スクロール範囲内である必要があります。
bRedraw
新しいスクロール ボックスの位置を反映するようにスクロール バーを再描画するかどうかを指定します。 このパラメーターが の場合、 TRUE
スクロール バーは再描画されます。の場合 FALSE
、スクロール バーは再描画されません。
戻り値
スクロール ボックスの前の位置。
注釈
を にFALSE
設定bRedraw
すると、スクロール バーが別の関数の後続の呼び出しによって再描画されるたびに便利です。
CWnd::SetScrollRange
指定されたスクロール バーの最小位置と最大位置の値を設定します。
void SetScrollRange(
int nBar,
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE);
パラメーター
nBar
設定するスクロール バーを指定します。 このパラメーターには、次のいずれかの値を指定できます。
SB_HORZ
ウィンドウの水平スクロール バーの範囲を設定します。SB_VERT
ウィンドウの垂直スクロール バーの範囲を設定します。
nMinPos
スクロールの最小位置を指定します。
nMaxPos
最大スクロール位置を指定します。
bRedraw
変更を反映するためにスクロール バーを再描画するかどうかを指定します。 が TRUE
の場合bRedraw
、スクロール バーは再描画されます。の場合FALSE
、スクロール バーは再描画されません。
注釈
また、標準のスクロール バーを非表示または表示するためにも使用できます。
アプリケーションでは、スクロール バー通知メッセージの処理中にスクロール バーを非表示にするために、この関数を呼び出さないでください。
への SetScrollRange
呼び出しがメンバー関数の SetScrollPos
呼び出しの直後にある場合、 bRedraw
スクロール バーが 2 回描画されないようにするには、メンバー関数のパラメーター SetScrollPos
を 0 にする必要があります。
標準スクロール バーの既定の範囲は 0 ~ 100 です。 スクロール バー コントロールの既定の範囲は空です (と nMaxPos
の両方のnMinPos
値は 0 です)。 と nMaxPos
でnMinPos
指定された値の差は、 よりINT_MAX
大きくすることはできません。
CWnd::SetTimer
システム タイマーをインストールします。
UINT_PTR SetTimer(
UINT_PTR nIDEvent,
UINT nElapse,
void (CALLBACK* lpfnTimer)(HWND,
UINT,
UINT_PTR,
DWORD));
パラメーター
nIDEvent
0 以外のタイマーの識別子を指定します。 タイマーの識別子が一意の場合、この同じ値が SetTimer
によって返されます。 一意でない場合、SetTimer
は、新しい一意の値を指定して返します。 ウィンドウ タイマー (コールバック関数を含む) の場合、 NULL
値は、現在のウィンドウに関連付けられている他のウィンドウ タイマーに対してのみ一意である必要があります。 コールバックのタイマーの場合、値はすべてのプロセスのすべてのタイマーで一意である必要があります。 したがって、コールバック タイマーを作成すると、戻り値が指定した値と異なる可能性が高くなります。
nElapse
タイムアウト値 (間隔) をミリ秒単位で指定します。
lpfnTimer
メッセージを処理するアプリケーション提供 TimerProc
のコールバック関数のアドレスを WM_TIMER
指定します。 このパラメーターが の NULL
場合、 WM_TIMER
メッセージはアプリケーションのメッセージ キューに配置され、 オブジェクトによって CWnd
処理されます。
戻り値
関数が正常に完了した場合の、新しいタイマーのタイマー識別子。 この値は、 パラメーターを介して nIDEvent
渡される値と等しい場合と等しくない場合があります。 タイマーを強制終了するには、アプリケーションは常に戻り値を KillTimer
メンバー関数に渡す必要があります。 正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
注釈
interval 値が指定され、間隔が経過するたびに、システムはインストールしているアプリケーションのインストール中のメッセージ キューにメッセージを投稿 WM_TIMER
するか、アプリケーション定義 TimerProc
のコールバック関数にメッセージを渡します。
コールバック関数に lpfnTimer
という名前を付 TimerProc
ける必要はありませんが、静的として宣言し、次のように定義する必要があります。
void CALLBACK TimerProc(
HWND hWnd, // handle of CWnd that called SetTimer
UINT nMsg, // WM_TIMER
UINT_PTR nIDEvent, // timer identification
DWORD dwTime // system time);
例
この例では、 を使用CWnd::SetTimer
CWnd::OnTimer
CWnd::KillTimer
してメッセージを処理WM_TIMER
します。 最初のタイマーは、 で 2 秒ごとにメイン フレーム ウィンドウにメッセージを送信 WM_TIMER
するように設定されます OnStartTimer
。 イベント ハンドラーは OnTimer
、メイン フレーム ウィンドウのメッセージを処理 WM_TIMER
します。 このメソッドにより、PC スピーカーは 2 秒ごとにビープ音を鳴らします。 2 番目のタイマーは、3.75 秒ごとにコールバック関数にメッセージを送信します。 OnStopTimer
は、各タイマー ID の CWnd::KillTimer
を呼び出して、両方のタイマーを停止します。
void CMainFrame::OnStartTimer()
{
// This timer uses a WM_TIMER message, not a callback.
// Therefore, the timer is specific to this window.
// m_nWindowTimer is a UINT_PTR field.
m_nWindowTimer = SetTimer(1, 2000, NULL);
// For this demo, we specify an interval that won't overlap
// with the window timer.
m_nCallbackTimer = SetTimer(2, 3750, &CMainFrame::MyTimerProc);
// See whether we got the ID we requested in the first parameter.
#ifdef _DEBUG
CString str;
str.Format(_T("m_ncallbackTImer ID = %d"), m_nCallbackTimer);
TRACE(str);
#endif
}
void CALLBACK CMainFrame::MyTimerProc(
HWND hWnd, // handle of CWnd that called SetTimer
UINT nMsg, // WM_TIMER
UINT_PTR nIDEvent, // timer identification
DWORD dwTime // system time
)
{
MessageBeep(0x00000030L); // Windows question sound.
}
void CMainFrame::OnStopTimer()
{
KillTimer(m_nWindowTimer);
KillTimer(m_nCallbackTimer);
}
void CMainFrame::OnTimer(UINT nIDEvent)
{
MessageBeep(0xFFFFFFFF); // Beep
// Call base class handler.
CMDIFrameWnd::OnTimer(nIDEvent);
}
CWnd::SetWindowContextHelpId
このメンバー関数を呼び出して、ヘルプ コンテキスト識別子を指定されたウィンドウに関連付けます。
BOOL SetWindowContextHelpId(DWORD dwContextHelpId);
パラメーター
dwContextHelpId
ヘルプ コンテキスト識別子。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
子ウィンドウにヘルプ コンテキスト識別子がない場合は、その親ウィンドウの識別子を継承します。 同様に、所有ウィンドウにヘルプ コンテキスト識別子がない場合は、その所有者ウィンドウの識別子が継承されます。 このヘルプ コンテキスト識別子の継承により、アプリケーションはダイアログ ボックスとそのすべてのコントロールに対して 1 つの識別子のみを設定できます。
例
// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.
// Associate a help context id with the control.
// IDC_TESTHELP_CONTROL is the id of the control
// and HIDC_TESTHELP_CONTROL is its help context
// id associated with the control.
CWnd *pWnd = GetDlgItem(IDC_TESTHELP_CONTROL);
pWnd->SetWindowContextHelpId(HIDC_TESTHELP_CONTROL);
CWnd::SetWindowPlacement
ウィンドウの表示状態、通常の位置 (復元された位置)、最小化された位置、および最大表示された位置を設定します。
BOOL SetWindowPlacement(const WINDOWPLACEMENT* lpwndpl);
パラメーター
lpwndpl
新しい表示の WINDOWPLACEMENT
状態と位置を指定する構造体を指します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
CWnd::SetWindowPos
子ウィンドウ、ポップアップ ウィンドウ、トップレベル ウィンドウのサイズ、位置、Z オーダーを変更します。
BOOL SetWindowPos(
const CWnd* pWndInsertAfter,
int x,
int y,
int cx,
int cy,
UINT nFlags);
パラメーター
pWndInsertAfter
このCWnd
オブジェクトのCWnd
前 (より大きい) オブジェクトを Z オーダーで識別します。 このパラメーターには、 への CWnd
ポインター、または次のいずれかの値へのポインターを指定できます。
wndBottom
ウィンドウを Z オーダーの下部に配置します。 これがCWnd
一番上のウィンドウの場合、ウィンドウは最上位の状態を失います。他のすべてのウィンドウの下部にウィンドウが配置されます。wndTop
ウィンドウを Z オーダーの上部に配置します。wndTopMost
最上位以外のすべてのウィンドウの上にウィンドウを配置します。 非アクティブ化された場合でも、ウィンドウは最上位の位置を維持します。wndNoTopMost
ウィンドウを最上位以外のすべてのウィンドウ (つまり、すべての最上位ウィンドウの背後) の上部に位置を変更します。 ウィンドウが既に最上位以外のウィンドウである場合、このフラグは無効です。
このパラメーターの使用方法に関する規則については、このトピックの「解説」セクションを参照してください。
x
ウィンドウの左側の新しい位置を指定します。
y
ウィンドウの上部の新しい位置を指定します。
cx
ウィンドウの新しい幅を指定します。
cy
ウィンドウの新しい高さを指定します。
nFlags
サイズ設定と配置オプションを指定します。 このパラメーターには、次のフラグの組み合わせを指定できます。
SWP_DRAWFRAME
ウィンドウの周囲にフレーム (ウィンドウの作成時に定義) を描画します。SWP_FRAMECHANGED
ウィンドウのWM_NCCALCSIZE
サイズが変更されていない場合でも、メッセージをウィンドウに送信します。 このフラグが指定されていない場合、 は、WM_NCCALCSIZE
ウィンドウのサイズが変更されている場合にのみ送信されます。SWP_HIDEWINDOW
ウィンドウを非表示にします。SWP_NOACTIVATE
ウィンドウをアクティブにしません。 このフラグが設定されていない場合、ウィンドウはアクティブになり、最上位または最上位以外のグループの先頭に移動されます (パラメーターのpWndInsertAfter
設定に応じて)。SWP_NOCOPYBITS
クライアント領域の内容全体を破棄します。 このフラグを指定しない場合、クライアント領域の有効な内容が保存され、ウィンドウのサイズまたは位置が変更された後、クライアント領域にコピーされます。SWP_NOMOVE
現在の位置を保持します (およびy
パラメーターはx
無視されます)。SWP_NOOWNERZORDER
Z オーダーでの所有者ウィンドウの位置は変更されません。SWP_NOREDRAW
変更は再描画されません。 このフラグが設定されている場合、任意の種類の再描画は行われません。 これは、クライアント領域、非クライアント領域 (タイトルとスクロール バーを含む)、および移動されたウィンドウの結果として明らかにされた親ウィンドウの任意の部分に適用されます。 このフラグが設定されている場合、アプリケーションは、再描画する必要があるウィンドウと親ウィンドウの部分を明示的に無効にするか、再描画する必要があります。SWP_NOREPOSITION
SWP_NOOWNERZORDER
と同じです。SWP_NOSENDCHANGING
ウィンドウがメッセージを受信できないようにしますWM_WINDOWPOSCHANGING
。SWP_NOSIZE
現在のサイズを保持します (およびcy
パラメーターはcx
無視されます)。SWP_NOZORDER
現在の順序を保持します (無視pWndInsertAfter
)。SWP_SHOWWINDOW
ウィンドウを表示します。
戻り値
関数が成功した場合は 0 以外。それ以外の場合は 0。
注釈
ウィンドウは、画面の Z オーダーに従って並べ替えされます。Z オーダーの上部にあるウィンドウは、他のすべてのウィンドウの上に順に表示されます。
子ウィンドウのすべての座標はクライアント座標です (親ウィンドウのクライアント領域の左上隅を基準に)。
ウィンドウを Z オーダーの先頭に移動するには、 パラメーターを に&wndTopMost
設定pWndInsertAfter
し、フラグがSWP_NOZORDER
設定されていないことを確認するか、ウィンドウの Z オーダーを設定して、既存の一番上のウィンドウの上に配置します。 最上位以外のウィンドウが一番上に作成されると、所有されているウィンドウも最上位になります。 その所有者は変更されません。
一番上のウィンドウは、Z オーダーの下部 (&wndBottom
) または一番上以外のウィンドウの後に位置が変更された場合、一番上のウィンドウは最上位ではなくなります。 一番上のウィンドウが一番上以外のウィンドウになると、そのすべての所有者とその所有ウィンドウも最上位以外のウィンドウになります。
と SWP_NOZORDER
の両方が指定されていないSWP_NOACTIVATE
場合 (つまり、アプリケーションが同時にウィンドウをアクティブ化し、指定した Z オーダーに配置することを要求した場合)、 でpWndInsertAfter
指定された値は、次の状況でのみ使用されます。
と は どちらも パラメーターに
pWndInsertAfter
指定しません。&wndTopMost
&wndNoTopMost
このウィンドウはアクティブウィンドウではありません。
アプリケーションは、非アクティブなウィンドウを Z オーダーの先頭に移動しないとアクティブ化できません。 アプリケーションでは、アクティブ化されたウィンドウの Z オーダーを制限なく変更できます。
最上位以外のウィンドウは一番上のウィンドウを所有できますが、その逆は所有できません。 一番上のウィンドウが所有するウィンドウ (ダイアログ ボックスなど) は、すべての所有ウィンドウが所有者の上に留まるように、最上位のウィンドウになります。
Windows バージョン 3.1 以降では、ウィンドウを Z オーダーの一番上に移動し、スタイルを WS_EX_TOPMOST
設定してそこでロックできます。 このような一番上のウィンドウは、非アクティブ化された場合でも最上位の位置を維持します。 たとえば、WinHelp Always On Top コマンドを選択すると、ヘルプ ウィンドウが一番上に表示され、アプリケーションに戻ったときに表示されたままになります。
一番上のウィンドウを作成するには、 パラメーター を pWndInsertAfter
に指定して を&wndTopMost
呼び出SetWindowPos
すか、ウィンドウの作成時にWS_EX_TOPMOST
スタイルを設定します。
Z オーダーにスタイルを持つ WS_EX_TOPMOST
ウィンドウが含まれている場合、値を使用して &wndTopMost
移動されたウィンドウは、最上位以外のすべてのウィンドウの上部に配置されますが、一番上のウィンドウの下に配置されます。 アプリケーションがビットなしで WS_EX_TOPMOST
非アクティブなウィンドウをアクティブにすると、ウィンドウは最上位以外のすべてのウィンドウの上に移動し、最上位のウィンドウの下に移動します。
パラメーターが &wndBottom
CWnd
で、一番上のウィンドウのときに pWndInsertAfter
が呼び出された場合SetWindowPos
、ウィンドウは最上位の状態を失い (WS_EX_TOPMOST
がクリアされます)、ウィンドウは Z オーダーの下部に配置されます。
例
void CMyApp::OnHideApplication()
{
//m_pMainWnd is the main application window, a member of CMyApp
ASSERT_VALID(m_pMainWnd);
// hide the application's windows before closing all the documents
m_pMainWnd->ShowWindow(SW_HIDE);
m_pMainWnd->ShowOwnedPopups(FALSE);
// put the window at the bottom of z-order, so it isn't activated
m_pMainWnd->SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
CWnd::SetWindowRgn
ウィンドウの領域を設定するには、このメンバー関数を呼び出します。
int SetWindowRgn(
HRGN hRgn,
BOOL bRedraw);
パラメーター
hRgn
リージョンへのハンドル。
bRedraw
の場合 TRUE
、オペレーティング システムは領域を設定した後にウィンドウを再描画します。それ以外の場合は、ウィンドウを再描画しません。 通常、ウィンドウが表示されている場合は を にTRUE
設定bRedraw
します。 に設定するとTRUE
、 メッセージと WM_WINDOWPOSCHANGED
メッセージがWM_WINDOWPOSCHANGING
ウィンドウに送信されます。
戻り値
関数が成功すると、戻り値は 0 以外になります。 関数が失敗した場合は、0 を返します。
注釈
ウィンドウのウィンドウ領域の座標は、ウィンドウのクライアント領域ではなく、ウィンドウの左上隅を基準とします。
への SetWindowRgn
呼び出しが成功すると、オペレーティング システムはリージョン ハンドル hRgn
で指定されたリージョンを所有します。 オペレーティング システムはリージョンのコピーを作成しないため、このリージョン ハンドルを使用してそれ以上関数呼び出しを行わず、このリージョン ハンドルを閉じないでください。
CWnd::SetWindowText
ウィンドウのタイトルを指定したテキストに設定します。
void SetWindowText(LPCTSTR lpszString);
パラメーター
lpszString
CString
新しいタイトルまたはコントロール テキストとして使用するオブジェクトまたは null で終わる文字列を指します。
注釈
ウィンドウがコントロールの場合、コントロール内のテキストが設定されます。
この関数により、 WM_SETTEXT
このウィンドウにメッセージが送信されます。
例
// set the text in IDC_EDITNAME
CWnd *pWnd = GetDlgItem(IDC_EDITNAME);
pWnd->SetWindowText(_T("Gerald Samper"));
// Get the text back. CString is convenient, because MFC
// will automatically allocate enough memory to hold the
// text--no matter how large it is.
CString str;
pWnd->GetWindowText(str);
ASSERT(str == _T("Gerald Samper"));
// The LPTSTR override works, too, but it might be too short.
// If we supply a buffer that's too small, we'll only get those
// characters that fit.
TCHAR sz[10];
int nRet = pWnd->GetWindowText(sz, 10);
// Nine characters, plus terminating null
ASSERT(_tcscmp(sz, _T("Gerald Sa")) == 0);
ASSERT(nRet == 9);
// You can query the length of the text without the length of
// the string using CWnd::GetWindowTextLength()
nRet = pWnd->GetWindowTextLength();
ASSERT(nRet == 13);
CWnd::ShowCaret
キャレットの現在位置にある画面上のキャレットを表示します。
void ShowCaret();
注釈
キャレットは、表示されると自動的に点滅します。
このメンバー関数は ShowCaret
、キャレットが現在の図形を持ち、2 回以上連続して非表示になっていない場合にのみ、キャレットを表示します。 キャレットがこのウィンドウによって所有されていない場合、キャレットは表示されません。
キャレットを非表示にすると累積されます。 メンバー関数が連続して HideCaret
5 回呼び出された場合は、 ShowCaret
キャレットを表示するために 5 回呼び出す必要があります。
キャレットは共有リソースです。 ウィンドウには、入力フォーカスがある場合、またはアクティブな場合にのみキャレットが表示されます。
例
CWnd::CreateCaret
の例を参照してください。
CWnd::ShowOwnedPopups
このウィンドウが所有するすべてのポップアップ ウィンドウを表示または非表示にします。
void ShowOwnedPopups(BOOL bShow = TRUE);
パラメーター
bShow
ポップアップ ウィンドウを表示するか非表示にするかを指定します。 このパラメーターが の場合は TRUE
、すべての非表示のポップアップ ウィンドウが表示されます。 このパラメーターが の場合、 FALSE
表示されているすべてのポップアップ ウィンドウは非表示になります。
例
CWnd::SetWindowPos
の例を参照してください。
CWnd::ShowScrollBar
スクロール バーの表示と非表示を切り替えます。
void ShowScrollBar(
UINT nBar,
BOOL bShow = TRUE);
パラメーター
nBar
スクロール バーがコントロールであるか、ウィンドウの非クライアント領域の一部であるかを指定します。 非クライアント領域の一部である場合は、 nBar
スクロール バーが水平方向、垂直方向、またはその両方に配置されているかどうかを示します。 次のいずれかである必要があります。
SB_BOTH
ウィンドウの水平スクロール バーと垂直スクロール バーを指定します。SB_HORZ
ウィンドウが水平スクロール バーであることを指定します。SB_VERT
ウィンドウが垂直スクロール バーであることを指定します。
bShow
Windows でスクロール バーを表示するか非表示にするかを指定します。 このパラメーターが の場合、 TRUE
スクロール バーが表示されます。それ以外の場合、スクロール バーは非表示になります。
注釈
スクロール バー通知メッセージの処理中にスクロール バーを非表示にするために、アプリケーションで を呼び出 ShowScrollBar
さないでください。
CWnd::ShowWindow
ウィンドウの表示状態を設定します。
BOOL ShowWindow(int nCmdShow);
パラメーター
nCmdShow
の表示方法 CWnd
を指定します。 これは、次のいずれかの値である必要があります。
SW_HIDE
このウィンドウを非表示にし、アクティブ化を別のウィンドウに渡します。SW_MINIMIZE
ウィンドウを最小化し、システムの一覧の最上位ウィンドウをアクティブにします。SW_RESTORE
ウィンドウをアクティブにして表示します。 ウィンドウが最小化または最大化されている場合、Windows は元のサイズと位置に復元します。SW_SHOW
ウィンドウをアクティブにし、現在のサイズと位置で表示します。SW_SHOWMAXIMIZED
ウィンドウをアクティブにし、最大化されたウィンドウとして表示します。SW_SHOWMINIMIZED
ウィンドウをアクティブにし、アイコンとして表示します。SW_SHOWMINNOACTIVE
ウィンドウをアイコンとして表示します。 現在アクティブなウィンドウはアクティブなままになります。SW_SHOWNA
ウィンドウを現在の状態で表示します。 現在アクティブなウィンドウはアクティブなままになります。SW_SHOWNOACTIVATE
ウィンドウを最新のサイズと位置で表示します。 現在アクティブなウィンドウはアクティブなままになります。SW_SHOWNORMAL
ウィンドウをアクティブにして表示します。 ウィンドウが最小化または最大化されている場合、Windows は元のサイズと位置に復元します。
戻り値
ウィンドウが以前に表示されていた場合は 0 以外。が以前に非表示になっていた場合 CWnd
は 0。
注釈
ShowWindow
を使用するメイン ウィンドウ CWinApp::m_nCmdShow
では、アプリケーションごとに 1 回だけ呼び出す必要があります。 以降の の ShowWindow
呼び出しでは、 で CWinApp::m_nCmdShow
指定された値ではなく、上記の値のいずれかを使用する必要があります。
例
CWnd::CalcWindowRect
の例を参照してください。
CWnd::SubclassDlgItem
このメンバー関数を呼び出して、ダイアログ テンプレートから作成されたコントロールを "動的にサブクラス化" し、この CWnd
オブジェクトにアタッチします。
BOOL SubclassDlgItem(
UINT nID,
CWnd* pParent);
パラメーター
nID
コントロールの ID。
pParent
コントロールの親 (通常はダイアログ ボックス)。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
コントロールが動的にサブクラス化されると、Windows メッセージは のメッセージ マップを CWnd
介してルーティングされ、最初に の クラスのメッセージ ハンドラーを CWnd
呼び出します。 基底クラスに渡されるメッセージは、コントロールの既定のメッセージ ハンドラーに渡されます。
このメンバー関数は、Windows コントロールを オブジェクトにCWnd
アタッチし、コントロールと 関数WndProc
AfxWndProc
を置き換えます。 関数は、メンバー関数によって返される場所に古い WndProc
を GetSuperWndProcAddr
格納します。
例
// The following code fragment is from CMyDlg::OnInitDialog
// CMyDlg is derived from CDialog.
// IDC_BUTTON1 is the ID for a button on the
// dialog template used for CMyDlg.
m_MyButton.SubclassDlgItem(IDC_BUTTON1, this);
CWnd::SubclassWindow
このメンバー関数を呼び出して、ウィンドウを "動的にサブクラス化" し、この CWnd
オブジェクトにアタッチします。
BOOL SubclassWindow(HWND hWnd);
パラメーター
hWnd
ウィンドウへのハンドル。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
ウィンドウが動的にサブクラス化されると、Windows メッセージは のメッセージ マップを CWnd
介してルーティングされ、最初に の クラスのメッセージ ハンドラーを CWnd
呼び出します。 基底クラスに渡されるメッセージは、ウィンドウの既定のメッセージ ハンドラーに渡されます。
このメンバー関数は、Windows コントロールを オブジェクトに CWnd
アタッチし、ウィンドウ WndProc
の 関数と AfxWndProc
関数を置き換えます。 関数は、 オブジェクト内の古い WndProc
へのポインターを CWnd
格納します。
注意
この関数を呼び出すときに、ウィンドウを MFC オブジェクトにまだアタッチすることはできません。
例
// The following code shows how to subclass the edit control and list box
// controls inside a combo box. It uses WM_CTLCOLOR for subclassing.
// CSuperComboBox represents the combo box
HBRUSH CSuperComboBox::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
if (nCtlColor == CTLCOLOR_EDIT)
{
//Edit control
if (m_edit.GetSafeHwnd() == NULL)
m_edit.SubclassWindow(pWnd->GetSafeHwnd());
}
else if (nCtlColor == CTLCOLOR_LISTBOX)
{
//ListBox control
if (m_listbox.GetSafeHwnd() == NULL)
m_listbox.SubclassWindow(pWnd->GetSafeHwnd());
}
HBRUSH hbr = CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}
void CSuperComboBox::OnDestroy()
{
//unsubclass edit and list box before destruction
if (m_edit.GetSafeHwnd() != NULL)
m_edit.UnsubclassWindow();
if (m_listbox.GetSafeHwnd() != NULL)
m_listbox.UnsubclassWindow();
CComboBox::OnDestroy();
}
CWnd::UnlockWindowUpdate
でロックされたウィンドウのロックを解除するには、このメンバー関数を CWnd::LockWindowUpdate
呼び出します。
void UnlockWindowUpdate();
注釈
を使用して LockWindowUpdate
ロックできるウィンドウは一度に 1 つだけです。 ウィンドウのロックの詳細については CWnd::LockWindowUpdate
、 または Win32 関数 LockWindowUpdate
を参照してください。
CWnd::UnsubclassWindow
このメンバー関数を呼び出して元の値に戻 WndProc
し、HWND によって識別されたウィンドウを CWnd
オブジェクトからデタッチします。
HWND UnsubclassWindow();
戻り値
未分類ウィンドウへのハンドル。
例
CWnd::SubclassWindow
の例を参照してください。
CWnd::UpdateData
ダイアログ ボックス内のデータを初期化したり、ダイアログ データを取得して検証したりするには、このメンバー関数を呼び出します。
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
パラメーター
bSaveAndValidate
ダイアログ ボックスが初期化されている (FALSE
) か、データが取得TRUE
中 () かを示すフラグ。
戻り値
操作が成功した場合は 0 以外。それ以外の場合は 0。 が TRUE
の場合bSaveAndValidate
、0 以外の戻り値は、データが正常に検証されたことを意味します。
注釈
フレームワークは、 の既定の実装CDialog::OnInitDialog
でbSaveAndValidate
モーダル ダイアログ ボックスが作成されるときに、 を に設定FALSE
して自動的に呼び出しますUpdateData
。 呼び出しは、ダイアログ ボックスが表示される前に発生します。 の既定のCDialog::OnOK
実装では、 を にTRUE
設定してこのメンバー関数bSaveAndValidate
を呼び出してデータを取得し、成功した場合はダイアログ ボックスを閉じます。 (ダイアログ ボックスで [キャンセル] ボタンをクリックすると、データが取得されずにダイアログ ボックスが閉じられます。
CWnd::UpdateDialogControls
このメンバー関数を呼び出して、コールバック メカニズムを使用するダイアログ ボックスまたはウィンドウ内のダイアログ ボタンおよびその他のコントロールの状態を ON_UPDATE_COMMAND_UI
更新します。
void UpdateDialogControls(
CCmdTarget* pTarget,
BOOL bDisableIfNoHndler);
パラメーター
pTarget
アプリケーションのメイン フレーム ウィンドウをポイントし、更新メッセージのルーティングに使用します。
bDisableIfNoHndler
更新ハンドラーを持たないコントロールを自動的に無効として表示するかどうかを示すフラグ。
注釈
子コントロールにハンドラー bDisableIfNoHndler
がなく、 が の場合、 TRUE
子コントロールは無効になります。
フレームワークは、アプリケーションのアイドル処理の一部として、ダイアログ バーまたはツール バーのコントロールに対してこのメンバー関数を呼び出します。
CWnd::UpdateLayeredWindow
レイヤード ウィンドウの位置、サイズ、形状、内容、および透明度を更新します。
BOOL UpdateLayeredWindow(
CDC* pDCDst,
POINT* pptDst,
SIZE* psize,
CDC* pDCSrc,
POINT* pptSrc,
COLORREF crKey,
BLENDFUNCTION* pblend,
DWORD dwFlags);
パラメーター
pDCDst
画面のデバイス コンテキストへのポインター。 これは、ウィンドウの内容が更新されるときにパレットの色の一致に使用されます。 が NULL
の場合pDCDst
は、既定のパレットが使用されます。
が のpDCDst
場合pDCSrc
はNULL
、 であるNULL
必要があります。
pptDst
階層化されたウィンドウの POINT
新しい画面位置を指定する構造体へのポインター。 現在の位置が変更されていない場合は、 pptDst
を にできます NULL
。
psize
レイヤーウィンドウの SIZE
新しいサイズを指定する構造体へのポインター。 ウィンドウのサイズが変更されていない場合は、 psize
を にできます NULL
。
が のpsize
場合pDCSrc
はNULL
、 であるNULL
必要があります。
pDCSrc
レイヤーウィンドウを定義するサーフェスの DC へのポインター。 ウィンドウの図形と視覚コンテキストが変更されていない場合は、 pDCSrc
を にできます NULL
。
pptSrc
デバイス コンテキスト内の POINT
レイヤーの場所を指定する構造体へのポインター。
が のpptSrc
場合pDCSrc
はNULL
、 にするNULL
必要があります。
crKey
レイヤー ウィンドウの COLORREF
作成時に使用する透過性の色キーを指定する値へのポインター。 ウィンドウによってこの色で塗りつぶされたすべてのピクセルは透明になります。 を生成するには、 COLORREF
RGB マクロを使用します。
pblend
レイヤーウィンドウの BLENDFUNCTION
作成時に使用する透明度の値を指定する構造体へのポインター。
dwFlags
実行するアクションを指定します。 このパラメーターには、次の値の 1 つ以上を指定できます。 有効な値の一覧については、「UpdateLayeredWindow
」を参照してください。
戻り値
関数が正常終了した場合は 0 以外。それ以外の場合は 0。
注釈
このメンバー関数は、Windows SDK で説明されているように、 関数 UpdateLayeredWindow
の機能をエミュレートします。
CWnd::UpdateWindow
更新リージョンが空でない場合は、メッセージをWM_PAINT
送信してクライアント領域を更新します。
void UpdateWindow();
注釈
メンバー関数は UpdateWindow
、アプリケーション キューを WM_PAINT
バイパスしてメッセージを直接送信します。 更新リージョンが空の場合、 WM_PAINT
は送信されません。
例
// In this example a rectangle is drawn in a view.
// The OnChangeRect() function changes the dimensions
// of the rectangle and then calls CWnd::Invalidate() so the
// client area of the view will be redrawn next time the
// window is updated. It then calls CWnd::UpdateWindow
// to force the new rectangle to be painted.
void CMdiView::OnChangeRect()
{
// Change Rectangle size.
m_rcBox = CRect(20, 20, 210, 210);
// Invalidate window so entire client area
// is redrawn when UpdateWindow is called.
Invalidate();
// Update Window to cause View to redraw.
UpdateWindow();
}
// On Draw function draws the rectangle.
void CMdiView::OnDraw(CDC *pDC)
{
// Other draw code here.
pDC->Draw3dRect(m_rcBox, 0x00FF0000, 0x0000FF00);
}
CWnd::ValidateRect
ウィンドウの更新領域から四角形を削除して、指定された四角形内のクライアント領域を検証します。
void ValidateRect(LPCRECT lpRect);
パラメーター
lpRect
CRect
更新領域から削除する四角形のクライアント座標を含むオブジェクトまたはRECT
構造体を指します。 が のNULL
場合lpRect
、ウィンドウ全体が検証されます。
注釈
メンバー関数は BeginPaint
、クライアント領域全体を自動的に検証します。 更新領域の ValidateRect
一部を次に ValidateRgn
生成する前 WM_PAINT
に検証する必要がある場合は、 と メンバー関数のどちらも呼び出さないでください。
Windows は、現在の更新リージョンが検証されるまでメッセージを生成 WM_PAINT
し続けます。
CWnd::ValidateRgn
ウィンドウの現在の更新リージョンからリージョンを削除して、指定されたリージョン内のクライアント領域を検証します。
void ValidateRgn(CRgn* pRgn);
パラメーター
pRgn
更新領域から削除する領域を定義する領域を識別する オブジェクトへのポインター CRgn
。 このパラメーターが の場合、 NULL
クライアント領域全体が削除されます。
注釈
指定されたリージョンは、リージョン関数によって以前に作成されている必要があります。 リージョン座標はクライアント座標と見なされます。
メンバー関数は BeginPaint
、クライアント領域全体を自動的に検証します。 次WM_PAINT
のValidateRect
メッセージが生成される前にValidateRgn
更新領域の一部を検証する必要がある場合は、 および メンバー関数を呼び出す必要があります。
CWnd::WindowFromPoint
指定したポイントを含むウィンドウを取得します。 point
は、画面上のポイントの画面座標を指定する必要があります。
static CWnd* PASCAL WindowFromPoint(POINT point);
パラメーター
point
チェックするポイントを CPoint
定義するオブジェクトまたは POINT
データ構造を指定します。
戻り値
ポイントが存在するウィンドウ オブジェクトへのポインター。 これは、 NULL
特定のポイントにウィンドウが存在しない場合です。 返されるポインターは一時的な場合があり、後で使用するために格納しないでください。
注釈
WindowFromPoint
は、ポイントがウィンドウ内にある場合でも、非表示または無効のウィンドウを取得しません。 アプリケーションでは、非制限検索にメンバー関数を使用 ChildWindowFromPoint
する必要があります。
CWnd::WindowProc
オブジェクトの Windows プロシージャ (WindowProc
) を CWnd
提供します。
virtual LRESULT WindowProc(
UINT message,
WPARAM wParam,
LPARAM lParam);
パラメーター
message
処理する Windows メッセージを指定します。
wParam
メッセージの処理に使用される追加情報を提供します。 パラメーター値はメッセージによって異なります。
lParam
メッセージの処理に使用される追加情報を提供します。 パラメーター値はメッセージによって異なります。
戻り値
戻り値はメッセージによって異なります。
注釈
ウィンドウのメッセージ マップを介してメッセージをディスパッチします。
CWnd::WinHelp
WinHelp アプリケーションを起動します。
virtual void WinHelp(
DWORD_PTR dwData,
UINT nCmd = HELP_CONTEXT);
パラメーター
dwData
追加のデータを指定します。 使用される値は、 パラメーターの nCmd
値によって異なります。
nCmd
要求されるヘルプの種類を指定します。 使用可能な値の一覧とパラメーターへの影響 dwData
については、Windows SDK の WinHelp
Windows 関数を参照してください。
注釈
詳細については、「 CWinApp::WinHelp
」を参照してください。
CWnd::RegisterTouchWindow
Windows タッチ のサポートを登録または登録解除します。
BOOL RegisterTouchWindow(
BOOL bRegister = TRUE,
ULONG ulFlags = 0);
パラメーター
bRegister
TRUE
は、Windows タッチサポートの登録を示します。 FALSE
それ以外の場合は 。
ulFlags
オプションの変更を指定するビット フラグのセット。 このフィールドには、0 または次のいずれかの値を含めることができます。 TWF_FINETOUCH
TWF_WANTPALM
戻り値
成功した場合は TRUE
。それ以外の場合は FALSE
。
注釈
CWnd::ResizeDynamicLayout
ウィンドウで動的レイアウトが有効な場合、子ウィンドウのレイアウトを調整するためにウィンドウのサイズが変更されると、フレームワークによって呼び出されます。
virtual void ResizeDynamicLayout();