HWND CreateWindow( LPCTSTR lpClassName , LPCTSTR lpWindowName, DWORD dwStyle , int x , int y , int nWidth , int nHeight , HWND hWndParent , HMENU hMenu , HANDLE hInstance , LPVOID lpParam );この関数は、戻り値として HWND型 の値を返します
#include<windows.h> int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { HWND hwnd = CreateWindow( TEXT("STATIC") , TEXT("Kitty on your lap") , WS_CAPTION , 100 , 100 , 200 , 200 , NULL , NULL , hInstance , NULL ); if (hwnd == NULL) return 0; ShowWindow(hwnd , SW_SHOW); MessageBox(NULL , TEXT("Kitty on your lap") , TEXT("Kitty") , MB_ICONINFORMATION); return 0; }
HWND CreateWindowEx( DWORD dwExStyle, LPCTSTR lpClassName , LPCTSTR lpWindowName, DWORD dwStyle , int x , int y , int nWidth , int nHeight , HWND hWndParent , HMENU hMenu , HANDLE hInstance , LPVOID lpParam );第一引数以降は、全て CreateWindow() 関数と同じです
#include<windows.h> int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { HWND hwnd; hwnd = CreateWindowEx(WS_EX_TOOLWINDOW , TEXT("STATIC") , TEXT("Kitty on your lap") , WS_OVERLAPPEDWINDOW , 100 , 100 , 200 , 200 , NULL , NULL , hInstance , NULL ); if (hwnd == NULL) return 0; ShowWindow(hwnd , SW_SHOW); MessageBox(NULL , TEXT("Kitty on your lap") , TEXT("Kitty") , MB_ICONINFORMATION); return 0; }拡張スタイルが設定できることを除いて
HWND CreateWindow( LPCTSTR lpClassName , LPCTSTR lpWindowName, DWORD dwStyle , int x , int y , int nWidth , int nHeight , HWND hWndParent , HMENU hMenu , HANDLE hInstance , LPVOID lpParam );オーバーラップウィンドウ、ポップアップウィンドウ
定数 | 解説 |
---|---|
定義済みウィンドウクラス | |
BUTTON | ユーザーがクリックできるボタンを表す、小さな長方形の子ウィンドウです ボタンコントロールは単独またはグループの両方で使え ラベルを付けることもテキストなしで表示することもできます |
COMBOBOX | コンボボックスです リストボックスの部分は、常に表示させておくか ユーザーの指示によってドロップダウンするようにします コンボボックスのスタイルによって、ユーザーが選択フィールドの内容を 編集できるかできないかが決まります |
EDIT | キーボードからテキストを入力できる、長方形の子ウィンドウです エディットコントロールは可変ピッチのシステムフォントを使用し ANSI 文字セットの文字を表示します フォントを変更するよう、WM_SETFONT メッセージを エディットコントロールに送ることもできます エディットコントロールは、タブ文字をタブ長と同じ長さの空白文字列に展開します タブストップは 8 文字間隔で設定されているものとみなされます |
LISTBOX | 文字列のリスト (一覧) です クリックで文字列を選択できます また、このとき、親ウィンドウに通知メッセージが送られます コントロールウィンドウより長いリストをスクロールするには リストボックスのスクロールバーを使います リストボックスは、スクロールバーを必要に応じて 自動的に表示したり消したりします |
MDICLIENT | MDI クライアントウィンドウです このウィンドウは、MDI アプリケーションの子ウィンドウを 制御するメッセージを受け取ります 推奨されるスタイルビットは、WS_CLIPCHILDREN と WS_CHILD です スクロールバーを付けるときは、WS_HSCROLL と WS_VSCROLL を使います |
SCROLLBAR | つまみを持ち、両端に矢印ボタンがある長方形です ユーザーがコントロールをクリックするたびに スクロールバーは親ウィンドウに通知メッセージを送ります つまみの位置の更新は、必要に応じて親ウィンドウが行います スクロールバークラスは、サイズボックスコントロールも含みます |
STATIC | 簡単なテキストのフィールド、ボックス または他のコントロールにラベルを付けたり、囲んだり 分離したりするときに使う長方形です スタティックコントロールは入出力を行いません dw パラメータでは、次のウィンドウスタイルが指定できます |
スタイル | |
WS_BORDER | 境界線を持つウィンドウを作成します |
WS_CAPTION | タイトルバーを持つウィンドウを作成します WS_BORDER スタイルも含みます |
WS_CHILD | 子ウィンドウを定義します WS_POPUP スタイルとは使えません |
WS_CHILDWINDOW | WS_CHILD スタイルと同じです |
WS_CLIPCHILDREN | 親ウィンドウ内部を描画するとき 子ウィンドウが占める領域を除外します このスタイルは、親ウィンドウを作成するときに使います |
WS_CLIPSIBLINGS | 兄弟関係にある子ウィンドウをクリップします つまり、ある特定の子ウィンドウが WM_PAINT メッセージを受け取ると WS_CLIPSIBLINGS スタイルは、更新する子ウィンドウの領域から オーバーラップする他のすべての子ウィンドウをクリップします WS_CLIPSIBLINGS が指定されていない場合に 子ウィンドウがオーバーラップしていると 子ウィンドウのクライアント領域内を描画するときに 重なっている子ウィンドウのクライアント領域内にも描画されます |
WS_DISABLED | 無効 (使用不能) なウィンドウを作成します 無効なウィンドウは、有効にするまで ユーザーからの入力を受け取りません |
WS_DLGFRAME | ダイアログボックスで一般的に使われるスタイルの 境界を持つウィンドウを作成します |
WS_GROUP | コントロールグループの最初のコントロールを指定します このコントロールから、次に WS_GROUP スタイルの コントロールがくるまでに定義されたコントロールが コントロールグループになります 各グループの最初のコントロールは たいてい、グループからグループへユーザーが移動できるよう WS_TABSTOP スタイルを持ちます ユーザーは、方向キーで、グループ内のあるコントロールから 次のコントロールに入力フォーカスを変更できます |
WS_HSCROLL | 水平スクロールバーを持つウィンドウを作成します |
WS_ICONIC | WS_MINIMIZE スタイルと同じです |
WS_MAXIMIZE | ウィンドウを最大化の状態で作成します |
WS_MAXIMIZEBOX | 最大化ボタンを持つウィンドウを作成します WS_SYSMENU スタイルも指定する必要があります WS_EX_CONTEXTHELP スタイルと組み合わせることはできません |
WS_MINIMIZE | ウィンドウを最小化の状態で作成します WS_ICONIC スタイルと同じです |
WS_MINIMIZEBOX | 最小化ボタンを持つウィンドウを作成します WS_SYSMENU スタイルも指定する必要があります WS_EX_CONTEXTHELP スタイルと組み合わせることはできません |
WS_OVERLAPPED | オーバーラップウィンドウを作成します オーバーラップウィンドウはタイトルと枠を持ちます WS_TILED スタイルと同じです |
WS_OVERLAPPEDWINDOW | WS_OVERLAPPED スタイル、WS_CAPTION スタイル WS_SYSMENU スタイル、WS_THICKFRAME スタイル WS_MINIMIZEBOX スタイル、WS_MAXIMIZEBOX スタイルを持つ オーバーラップウィンドウを作成します |
WS_POPUP | ポップアップウィンドウを作成します このスタイルは、WS_CHILD スタイルと一緒には使えません |
WS_POPUPWINDOW | WS_BORDER スタイル、WS_POPUP スタイル WS_SYSMENU スタイルを持つポップアップウィンドウを作成します ウィンドウメニューを可視化するには、WS_CAPTION スタイルと WS_POPUPWINDOW スタイルを組み合わせる必要があります |
WS_SIZEBOX | WS_THICKFRAME スタイルと同じです |
WS_SYSMENU | タイトルバー上にウィンドウメニューボックスを持つウィンドウを作成します WS_CAPTION スタイルも指定する必要があります |
WS_TABSTOP | ユーザーが[Tab]キーを押すと 入力フォーカスを受け取るコントロールを指定します [Tab]キーを押すと、WS_TABSTOP スタイルを持つ次のコントロールに 入力フォーカスが移動します |
WS_THICKFRAME | サイズ変更境界を持つウィンドウを作成します WS_SIZEBOX スタイルと同じです |
WS_TILED | WS_OVERLAPPED スタイルと同じです |
WS_TILEDWINDOW | WS_OVERLAPPEDWINDOW スタイルと同じです |
WS_VISIBLE | 可視状態のウィンドウを作成します |
WS_VSCROLL | 垂直スクロールバーを持つウィンドウを作成します |
BUTTON専用スタイル | |
BS_3STATE | 選択された状態、選択されていない状態 グレー表示の状態を持つチェックボックスを作成します グレーの状態は、チェックボックスの状態が 決められていないことを示すときなどに使います |
BS_AUTO3STATE | BS_3STATE と同じボタンを作成します ただし、ユーザーがチェックボックスを選択すると ボックスの状態が自動的に変わります |
BS_AUTOCHECKBOX | チェックボックスを作成します ただし、ユーザーがチェックボックスを選択すると ボックスの状態が自動的に変わります |
BS_AUTORADIOBUTTON | ラジオボタンを作成します ただし、ユーザーがボタンを選択すると Windows が自動的にボタンを選択状態にし 同じグループのほかのボタンを非選択状態にします |
BS_CHECKBOX | チェックボックスを作成します デフォルトでは、テキストはボックスの右側に表示されます テキストをボックスの左側に表示するには このフラグと BS_LEFTTEXT スタイル または BS_RIGHTBUTTON スタイル を組み合わせます |
BS_DEFPUSHBUTTON | プッシュボタンを作成します ただし、黒色の太い境界も持ちます このボタンがダイアログボックスにある場合は ボタンが入力フォーカスを持っていなくても [Enter]キーを押せばボタンを選択できます |
BS_GROUPBOX | グループボックスを作成します ほかのコントロールを、このコントロールの中にグループ化できます |
BS_LEFTTEXT | ラジオボタンスタイルやチェックボックススタイルと組み合わせると ラジオボタンの円やチェックボックスの四角の左側にテキストが置かれます BS_RIGHTBUTTON スタイルを同じです |
BS_OWNERDRAW | オーナー描画ボタンを作成します オーナーウィンドウは、ボタンが作成されると WM_MEASUREITEM メッセージを受け取り ボタンの外観が変わると WM_DRAWITEM メッセージを受け取ります 他のボタンスタイルと組み合わせることはできません |
BS_PUSHBUTTON | プッシュボタンを作成します ユーザーがボタンを選択すると オーナーウィンドウに WM_COMMAND メッセージがポストされます |
BS_RADIOBUTTON | ラジオボタンを作成します デフォルトでは、テキストはボタンの右側に表示されます テキストをボタンの左側に表示するには このフラグと BS_LEFTTEXT スタイル または BS_RIGHTBUTTON スタイル を組み合わせます |
BS_USERBUTTON | 使われなくなりました BS_OWNERDRAW スタイルを使ってください |
BS_BITMAP | ビットマップを表示するボタンを作成します |
BS_BOTTOM | ボタンの下部にテキストを置きます |
BS_CENTER | ボタンの中央にテキスト置きます |
BS_ICON | アイコンを表示するボタンを作成します |
BS_LEFT | ボタンの中にテキストを左寄せします ボタンが BS_RIGHTBUTTON スタイルを持たない チェックボックス (またはラジオボタン) の場合 テキストはチェックボックスやラジオボタンの右側に左寄せされます |
BS_MULTILINE | テキストが長すぎてボタンの中に一行で収まらないとき テキストを複数行に折り返します |
BS_NOTIFY | 親ウィンドウに、ボタンが BN_DBLCLK BN_KILLFOCUS 、BN_SETFOCUS 通知メッセージを送ることを可能にします このスタイルを持つかどうかに関わらず ボタンは BN_CLICKED 通知メッセージを送ります |
BS_PUSHLIKE | プッシュボタンのような概観と機能を持つ チェックボックスまたはラジオボタンを作ります |
BS_RIGHT | ボタンの中にテキストを右寄せします ボタンが BS_RIGHTBUTTON スタイルを持たない チェックボックス (またはラジオボタン) の場合は テキストはチェックボックスやラジオボタンの右側に右寄せされます |
BS_RIGHTBUTTON | BS_LEFTTEXT スタイルと同じです |
BS_TEXT | ボタンがテキストを表示するよう指定します |
BS_TOP | ボタンの最上部にテキストを置きます |
BS_VCENTER | ボタンの (垂直方向の) 中央にテキストを置きます |
COMBOBOX専用スタイル | |
CBS_AUTOHSCROLL | ユーザーが行末に文字を入力すると エディットコントロール内のテキストが自動的に右スクロールします |
CBS_DISABLENOSCROLL | スクロールするほどの項目数がない場合 リストボックスの垂直方向のスクロールバーが無効状態で表示されます 通常は表示されません |
CBS_DROPDOWN | ドロップダウンコンボボックスを作成します CBS_SIMPLE に似ていますが ユーザーがエディットコントロールの 横にあるアイコンを選択しないとリストボックスが表示されません |
CBS_DROPDOWNLIST | ドロップダウンリストボックスを作成します CBS_DROPDOWN に似ていますが テキストの編集はできません |
CBS_HASSTRINGS | オーナー描画コンボボックスの持つ項目が 文字列であることを指定します コンボボックスが文字列用のメモリとアドレスを管理するので アプリケーションは CB_GETLBTEXT メッセージを使用して 特定項目のテキストを取り出すことができます |
CBS_LOWERCASE | コンボボックスのエディットコントロールに入力された大文字を 小文字に変換します |
CBS_NOINTEGRALHEIGHT | コンボボックスのサイズを指定します 通常は、項目が途中で切れないように Windows システムがコンボボックスのサイズを調整します |
CBS_OEMCONVERT | コンボボックスのエディットコントロールに 入力されたテキストを変換します テキストは Windows 文字セットから OEM 文字セットに変換され その後にまた Windows 文字セットに変換されます この動作は、CharToOem 関数の変換が正しく行われることを保証します このスタイルはファイル名を項目とする コンボボックスにおいて便利ですが CBS_SIMPLE か CBS_DROPDOWN スタイルにしか適用できません |
CBS_OWNERDRAWFIXED | 各項目の高さがすべて同じ オーナー描画コンボボックスを作成します オーナーウィンドウは、コンボボックスが作成されると WM_MEASUREITEM メッセージを受け取り、コンボボックスの外観が変わると WM_DRAWITEM メッセージを受け取ります |
CBS_OWNERDRAWVARIABLE | 各項目の高さが可変の オーナー描画コンボボックスを作成します オーナーウィンドウは、コンボボックスの各項目について WM_MEASUREITEM メッセージを受け取り、コンボボックスの外観が変わると WM_DRAWITEM メッセージを受け取ります |
CBS_SIMPLE | 常時リストボックスが表示されるコンボボックスを作成します リストボックス内の現在の選択項目は エディットコントロール内に表示されます |
CBS_SORT | リストボックスに追加された文字列を自動的に並べ替えます |
CBS_UPPERCASE | コンボボックスのエディットコントロールに入力された小文字を 大文字に変換します |
EDIT専用スタイル | |
ES_AUTOHSCROLL | ユーザーが行末に文字を入力すると エディットコントロール内のテキストが自動的に右スクロールします |
ES_AUTOVSCROLL | ユーザーが最下行で[Enter]キーを押すと テキストを自動的に上にスクロールします |
ES_CENTER | 複数行エディットコントロールにおいて テキストを中央揃えで表示します |
ES_LEFT | テキストを左揃えで表示します |
ES_LOWERCASE | エディットコントロールに入力された文字を小文字に変換します |
ES_MULTILINE | 複数行エディットコントロールを作成します デフォルトは一行のエディットコントロールです ダイアログボックス内の複数行エディットコントロールで[Enter]キーを押すと デフォルトのボタンがアクティブになります [Enter]キーを改行のために使うには ES_WANTRETURN スタイルを使用します |
ES_NOHIDESEL | エディットコントロール内の 選択文字列のデフォルトの動作を無効にします デフォルトでは、コントロールが 入力フォーカスを失うと選択項目が表示されなくなり 入力フォーカスを受け取ると反転表示されます ES_NOHIDESEL を指定すると、選択されたテキストは コントロールがフォーカス持っていない場合も反転表示されます |
ES_NUMBER | 数字だけが入力できるようにします |
ES_OEMCONVERT | エディットコントロールに入力されたテキストを変換します テキストは Windows 文字セットから OEM 文字セットに変換され その後にまた Windows 文字セットに変換されます この動作は、CharToOem 関数の変換が正しく行われることを保証します このスタイルはファイル名を項目とするコンボボックスにおいて便利です |
ES_PASSWORD | エディットコントロールに入力された文字を アスタリスク (*) で置き換えて表示します 表示する文字を変更するには EM_SETPASSWORDCHAR メッセージを使います |
ES_READONLY | ユーザーによるテキストの入力や編集をできなくします |
ES_RIGHT | 複数行エディットコントロールにおいて、テキストを右揃えで表示します |
ES_UPPERCASE | エディットコントロールに入力された文字を、大文字に変換します |
ES_WANTRETURN | ダイアログボックス内の複数行エディットコントロールに テキストを入力しているときに[Enter]キーが押されると 改行が挿入されるようにします このスタイルを指定していないと ダイアログボックスのデフォルトのプッシュボタンが押されます このスタイルは、一行のエディットコントロールでは効果がありません |
LISTBOX専用スタイル | |
LBS_DISABLENOSCROLL | スクロールするほどの項目数がない場合 リストボックスの垂直スクロールバーが無効状態で表示されます 通常はスクロールバーは表示されません |
LBS_EXTENDEDSEL | [Shift]キーとマウス、または特殊なキーの組み合わせで 複数の項目を選択できるようにします |
LBS_HASSTRINGS | リストボックスの項目が、文字列であることを指定します リストボックスが文字列用のメモリとアドレスを管理するので アプリケーションは LB_GETTEXT メッセージを使用して 特定項目のテキストを取り出すことができます デフォルトでは、オーナー描画のリストボックス以外の すべてのリストボックスが、このスタイルを持ちます |
LBS_MULTICOLUMN | 水平にスクロールする複数列のリストボックスを指定します LB_SETCOLUMNWIDTH メッセージで列の幅を設定します |
LBS_MULTIPLESEL | 項目をクリックまたはダブルクリックして 複数の項目を選択できるようにします |
LBS_NODATA | データを持たないリストボックスを指定します リストボックス内の項目数が 1000 を超えるときにこのスタイルを指定します データを持たないリストボックスには LBS_OWNERDRAWFIXED スタイルが必要です LBS_SORT スタイルや LBS_HASSTRINGS スタイルは設定できません 項目に文字列やビットマップデータを持たないことを除くと データを持たないリストボックスはオーナー描画リストボックスに似ています 項目の追加、挿入、削除のコマンドは常に無視されます 文字列の検索は、常に失敗します Windows は、項目を描画する必要があると オーナーウィンドウに WM_DRAWITEM メッセージを送ります WM_DELETEITEM メッセージと一緒に送られる DRAWITEMSTRUCT 構造体の itemID メンバは 描画する項目の行数を指定します データを持たないリストボックスは WM_DELETEITEM メッセージを送りません |
LBS_NOINTEGRALHEIGHT | リストボックスのサイズを指定します 通常は、項目が途中で切れないように Windows システムがリストボックスのサイズを調整します |
LBS_NOREDRAW | 項目が変更されても リストボックスの外観を更新しないように指定します このスタイルは、WM_SETREDRAW メッセージを送ることでいつでも変更できます |
LBS_NOSEL | 表示するだけで選択できない項目を持つリストボックスを指定します |
LBS_NOTIFY | ユーザーがリストボックス内の 文字列をクリック (またはダブルクリック) するたびに 親ウィンドウに入力メッセージを通知します |
LBS_OWNERDRAWFIXED | 各項目の高さがすべて同じ オーナー描画リストボックスを作成します オーナーウィンドウは、リストボックスが作成されると WM_MEASUREITEM メッセージを受け取り リストボックスの外観が変わると WM_DRAWITEM メッセージを受け取ります |
LBS_OWNERDRAWVARIABLE | 各項目の高さがすべて可変の オーナー描画リストボックスを作成します オーナーウィンドウは、リストボックス内の各項目について WM_MEASUREITEM メッセージを受け取り リストボックスの外観が変わると WM_DRAWITEM メッセージを受け取ります |
LBS_SORT | リストボックス内の文字列をアルファベット順にソートします |
LBS_STANDARD | リストボックス内の文字列をアルファベット順にソートします ユーザーが文字列をクリック (またはダブルクリック) するたびに 親ウィンドウは入力メッセージを受け取ります リストボックスは四方に境界を持ちます |
LBS_USETABSTOPS | 文字列を描画するときに リストボックスがタブ文字を認識し、展開できるようにします デフォルトのタブ位置は 32 ダイアログボックス単位です GetDialogBaseUnits 関数は、ダイアログボックスで 使用される単位をピクセル単位で返します |
LBS_WANTKEYBOARDINPUT | ユーザーがキーを押してリストボックスが入力フォーカスを持つたびに リストボックスのオーナーが WM_VKEYTOITEM メッセージを受けるようにします これにより、キーボード入力に特殊な処理を行えるようになります |
SCROLLBAR専用スタイル | |
SBS_BOTTOMALIGN | スクロールバーの下端をCreateWindow 関数の x、y、nWidth、nHeight パラメータで 指定した長方形の下端にそろえます スクロールバーの高さはデフォルトの高さになります このスタイルは SBS_HORZ スタイルと一緒に使います |
SBS_HORZ | 水平スクロールバーを作成します SBS_BOTTOMALIGN スタイルも SBS_TOPALIGN スタイルも指定しないと スクロールバーは CreateWindow 関数の x、y、nWidth、nHeight パラメータで 指定した位置とサイズになります |
SBS_LEFTALIGN | スクロールバーの左端を CreateWindow 関数の x、y、nWidth、nHeight パラメータで 指定した長方形の左端にそろえます スクロールバーの幅は、デフォルトの幅になります このスタイルは SBS_VERT スタイルと一緒に使います |
SBS_RIGHTALIGN | スクロールバーの右端を CreateWindow 関数の x、y、nWidth、nHeight パラメータで 指定した長方形の右端にそろえます スクロールバーの幅は、デフォルトの幅になります このスタイルは SBS_VERT スタイルと一緒に使います |
SBS_SIZEBOX | サイズボックスを作成します SBS_SIZEBOXBOTTOMRIGHTALIGN スタイルも SBS_SIZEBOXTOPLEFTALIGN スタイルも指定しないとサイズボックスは CreateWindow 関数の x、y、nWidth、nHeight パラメータで 指定した位置とサイズになります |
SBS_SIZEBOXBOTTOMRIGHTALIGN | サイズボックスの右下隅を CreateWindow 関数の x、y、nWidth、nHeight パラメータで 指定した長方形の右下隅にそろえます サイズボックスのサイズは、デフォルトのサイズになります このスタイルは SBS_SIZEBOX スタイルと一緒に使います |
SBS_SIZEBOXTOPLEFTALIGN | サイズボックスの左上隅を CreateWindow 関数の x、y、nWidth、nHeight パラメータで 指定した長方形の左上隅にそろえます サイズボックスのサイズは、デフォルトのサイズになります このスタイルは SBS_SIZEBOX スタイルと一緒に使います |
SBS_SIZEGRIP | SBS_SIZEBOX スタイルと同じです ただし、縁が盛り上がります |
SBS_TOPALIGN | スクロールバーの上端を CreateWindow 関数の x、y、nWidth、nHeight パラメータで 指定した長方形の上端にそろえます スクロールバーの高さは、デフォルトの高さになります このスタイルは SBS_HORZ スタイルと一緒に使います |
SBS_VERT | 垂直スクロールバーを作成します SBS_RIGHTALIGN スタイルも SBS_LEFTALIGN スタイルも指定しないと スクロールバーは CreateWindow 関数の x、y、nWidth、nHeight パラメータで 指定した位置とサイズになります |
STATIC専用スタイル | |
SS_BITMAP | ビットマップを表示するスタティックコントロールを作成します nWidth と nHeight パラメータは無視され ビットマップに合わせてコントロールのサイズが調整されます |
SS_BLACKFRAME | ウィンドウの枠と同じ色の枠を持つボックスを作成します Windows のデフォルトの配色は黒です |
SS_BLACKRECT | ウィンドウの枠と同じ色で塗りつぶされた長方形を作成します Windows のデフォルトの配色は黒です |
SS_CENTER | テキストを中央揃えで表示します テキストが行末を超える場合は自動的に折り返されます |
SS_CENTERIMAGE | コントロールのサイズが変更されても SS_BITMAP や SS_ICON スタイルを持つ スタティックコントロールの中心点は変えないようにします |
SS_GRAYFRAME | 画面の背景 (デスクトップ) と同じ色の枠を持つボックスを作成します Windows のデフォルトの配色は灰色です |
SS_GRAYRECT | 画面の背景 (デスクトップ) と同じ色で塗りつぶされた長方形を作成します Windows のデフォルトの配色は灰色です |
SS_ICON | アイコンを表示するスタティックコントロールを作成します nWidth と nHeight パラメータは無視され アイコンに合わせてコントロールのサイズが調整されます |
SS_LEFT | テキストを左揃えで表示します テキストが行末を超える場合は自動的に折り返されます |
SS_LEFTNOWORDWRAP | テキストを左揃えで表示します タブは展開されますが、テキストは折り返されません 行末を超えるテキストはクリップされます |
SS_METAPICT | メタファイルを表示するスタティックコントロールを作成します メタファイルは、コントロールのサイズに 合わせた大きさで表示されます |
SS_NOPREFIX | コントロールのテキスト中のアンパサント (&) 文字を アクセラレータのプリフィックス文字として 解釈しないように指定します このスタティックコントロールスタイルは、定義されている どのようなスタティックコントロールとも組み合わせて指定できます アプリケーションは、ビット演算子 OR (|) 使って SS_NOPREFIX スタイルを他のスタイルと組み合わせることができます ダイアログボックスのスタティックコントロール内に アンパサント (&) を含むファイル名や その他の文字列を表示する必要があるときに便利です |
SS_NOTIFY | ユーザーがコントロールを クリック (またはダブルクリック) するたびに 親ウィンドウに STN_CLICKED 通知メッセージ または STN_DBLCLK 通知メッセージを送ります |
SS_RIGHT | テキストを右揃えで表示します テキストが行末を超える場合は自動的に折り返されます |
SS_RIGHTIMAGE | コントロールのサイズが変更されても SS_BITMAP スタイルや SS_ICON スタイルを持つ スタティックコントロールの右下隅は変えないようにします |
SS_SIMPLE | 単一行のテキストを左揃えで表示します このコントロールの親ウィンドウやダイアログボックスは WM_CTLCOLORSTATIC メッセージを処理してはいけません |
SS_WHITEFRAME | ウィンドウの背景と同じ色の枠を持つボックスを作成します Windows のデフォルトの配色は白です |
SS_WHITERECT | ウィンドウの背景と同じ色の 枠で塗りつぶされた長方形を作成します Windows のデフォルトの配色は白です |
ダイアログボックススタイル | |
DS_3DLOOK | ダイアログボックスを立体的に表示します 現在のバージョンの Windows 用にコンパイルされた アプリケーションが作成するダイアログボックスには 自動的に立体的な外観が適用されます |
DS_ABSALIGN | ダイアログボックスの座標系を、スクリーン座標にします デフォルトでは、クライアント座標になります |
DS_CENTER | デスクトップの作業領域の中央に ダイアログボックスを配置します 作業領域は、タスクバーに覆われていない領域です |
DS_CENTERMOUSE | ダイアログボックスの中央にマウスポインタを配置します |
DS_CONTEXTHELP | ダイアログボックスのタイトルバーに[?]ボタンを追加します ユーザーがこの[?]ボタンをクリックすると マウスポインタに疑問符が付きます その後、ユーザーがダイアログボックス内のコントロールをクリックすると コントロールは WM_HELP メッセージを受け取ります コントロールはダイアログの処理にそのメッセージを送ります このダイアログの処理は、HELP_WM_HELP コマンドを使った WinHelp 関数です ヘルプアプリケーションは、通常、コントロールのヘルプを持つ ポップアップウィンドウを表示します DS_CONTEXTHELP は、プレースホルダーでしかありません ダイアログボックスが作成されると システムは DS_CONTEXTHELP があることを確認し もしあれば、ダイアログボックスの拡張スタイルに WS_EX_CONTEXTHELP を追加します WS_EX_CONTEXTHELP は WS_MAXIMIZEBOX や WS_MINIMIZEBOX スタイルとは一緒に使用できません |
DS_CONTROL | 他のダイアログボックスの子ウィンドウとして適切に機能する プロパティシート内のページのような ダイアログボックスを作成します |
DS_FIXEDSYS | SYSTEM_FONT の代わりに SYSTEM_FIXED_FONT を使用します |
DS_LOCALEDIT | 16 ビットのアプリケーションで使用します |
DS_MODALFRAME | モーダルダイアログボックスフレームを持つ ダイアログボックスを作成します |
DS_NOFAILCREATE | エラーが発生してもダイアログボックスを作成します |
DS_NOIDLEMSG | ダイアログボックスが表示されている間 WM_ENTERIDLE メッセージを抑制します |
DS_RECURSE | コントロールに似たダイアログボックスを作成します |
DS_SETFONT | ダイアログボックステンプレートが フォント名とポイントサイズを持つことを示します 対応するフォントは、ダイアログボックスで テキストを表示するために使われます |
DS_SETFOREGROUND | ダイアログボックスをフォアグラウンドにします 内部で Windows システムが SetForegroundWindow 関数を呼び出します このスタイルは、16 ビット版の Windows には適用できません |
DS_SYSMODAL | システムモーダルダイアログボックスを作成します このスタイルを指定すると、ダイアログボックスが 最前面ウィンドウ (WS_EX_TOPMOST) になります その他の点では、ダイアログボックス自身や システム内の他のウィンドウの振る舞いに影響を与えません |
HWND CreateWindowEx( DWORD dwExStyle, LPCTSTR lpClassName , LPCTSTR lpWindowName, DWORD dwStyle , int x , int y , int nWidth , int nHeight , HWND hWndParent , HMENU hMenu , HANDLE hInstance , LPVOID lpParam );拡張スタイルが指定できること以外は CreateWindow() と同じです
定数 | 解説 |
---|---|
拡張スタイル | |
WS_EX_ACCEPTFILES | ドラッグアンドドロップで、ファイルを受け入れます |
WS_EX_APPWINDOW | ウィンドウが最小化されると トップレベルウィンドウがタスクバー上に置かれます |
WS_EX_CLIENTEDGE | 縁が沈んで見える境界線を持つウィンドウを指定します |
WS_EX_CONTEXTHELP | ダイアログボックスのタイトルバーに[?]ボタンを追加します ユーザーがこの[?]ボタンをクリックすると マウスポインタに疑問符が付きます その後、ユーザーがダイアログボックス内のコントロールをクリックすると コントロールは WM_HELP メッセージを受け取ります コントロールはダイアログの処理にそのメッセージを送ります このダイアログの処理は、HELP_WM_HELP コマンドを使った WinHelp 関数です ヘルプアプリケーションは、通常 コントロールのヘルプを持つポップアップウィンドウを表示します WS_EX_CONTEXTHELP は WS_MAXIMIZEBOX や WS_MINIMIZEBOX スタイルとは一緒に使用できません |
WS_EX_CONTROLPARENT | ユーザーが[Tab]キーを使って子ウィンドウ間を移動できるようにします |
WS_EX_DLGMODALFRAME | 二重の境界線を持つウィンドウを作成します dwStyle パラメータに WS_CAPTION スタイルを指定することで タイトルバーを持つようにも作成できます |
WS_EX_LEFT | 左揃えされたプロパティを持つウィンドウを作成します。デフォルトです |
WS_EX_LEFTSCROLLBAR | 垂直スクロールバーがクライアント領域の左側に置かれます ヘブライ語やアラビア語をサポートしているシステムで有効です 他の言語では、このスタイルは無視され、エラーとして扱われます |
WS_EX_LTRREADING | 垂直スクロールバーがクライアント領域の左側に置かれます ヘブライ語やアラビア語をサポートしているシステムで有効です 他の言語では、このスタイルは無視され、エラーとして扱われます |
WS_EX_MDICHILD | MDI 子ウィンドウを作成します |
WS_EX_NOPARENTNOTIFY | このスタイルで作成された 子ウィンドウが作成されたり破棄されたりするときに その親ウィンドウにWM_PARENTNOTIFY メッセージを送らないように指定します |
WS_EX_OVERLAPPEDWINDOW | WS_EX_CLIENTEDGE と WS_EX_WINDOWEDGE スタイルの組み合わせです |
WS_EX_PALETTEWINDOW | WS_EX_WINDOWEDGE 、WS_EX_TOOLWINDOW WS_EX_TOPMOST スタイルの組み合わせです |
WS_EX_RIGHT | 右揃えされたプロパティを持つウィンドウを作成します ヘブライ語やアラビア語をサポートしているシステムで有効です 他の言語では、このスタイルは無視され、エラーとして扱われます |
WS_EX_RIGHTSCROLLBAR | 垂直スクロールバーがクライアント領域の右側に置かれます デフォルトです |
WS_EX_RTLREADING | 右から左への読み取り順序を持つプロパティを持ったウィンドウを作成します ヘブライ語やアラビア語をサポートしているシステムで有効です 他の言語では、このスタイルは無視され、エラーとして扱われます |
WS_EX_STATICEDGE | ユーザーの入力を受け付けない項目用の 立体的に見える境界スタイルを持つウィンドウを作成します |
WS_EX_TOOLWINDOW | ツールウィンドウを作成します これは、フローティングツールバー用のウィンドウです ツールウィンドウは通常のタイトルバーより小さいタイトルバーを持ちます タスクバーには表示されません ユーザーが[Alt]キーと[Tab]キーを 同時に押すと現れるダイアログ内にも、表示されません |
WS_EX_TOPMOST | 最前面ウィンドウを作成します ウィンドウが非アクティブな状態でも、ほかのウィンドウの前面に表示されます SetWindowPos 関数を使用すると、非最前面ウィンドウに変更できます |
WS_EX_TRANSPARENT | 透過ウィンドウを作成します このウィンドウの下にあるどのようなウィンドウも、遮られることなく表示されます このスタイルで作成されたウィンドウは、その下にある兄弟ウィンドウが すべて更新されたときにだけ、WM_PAINT メッセージを受け取ります |
WS_EX_WINDOWEDGE | ウィンドウが盛り上がった縁の境界線を持つことを指定します |
定数 | 解説 |
---|---|
SW_HIDE | ウィンドウを非表示にし、他のウィンドウをアクティブにします |
SW_MAXIMIZE | ウィンドウを最大化します |
SW_MINIMIZE | ウィンドウを最小化し、Z 順位が次のトップレベルウィンドウをアクティブにします |
SW_RESTORE | ウィンドウをアクティブにし、表示します ウィンドウが最小化されていたり最大化されていたりすると 元の位置とサイズに戻ります |
SW_SHOW | ウィンドウをアクティブにして、現在の位置とサイズで表示します |
SW_SHOWDEFAULT | アプリケーションを起動させたプログラムが CreateProcess 関数に渡す STARTUPINFO 構造体の wShowWindow メンバで指定された SW_ フラグを基にして、表示状態を設定します |
SW_SHOWMAXIMIZED | ウィンドウをアクティブにして、最大化します |
SW_SHOWMINIMIZED | ウィンドウをアクティブにして、最小化します |
SW_SHOWMINNOACTIVE | ウィンドウを最小化します アクティブなウィンドウは、アクティブな状態を維持します 非アクティブなウィンドウは、非アクティブなままです |
SW_SHOWNA | ウィンドウを現在の状態で表示します アクティブなウィンドウはアクティブな状態を維持します |
SW_SHOWNOACTIVATE | ウィンドウを直前の位置とサイズで表示します アクティブなウィンドウはアクティブな状態を維持します |
SW_SHOWNORMAL | ウィンドウをアクティブにして、表示します ウィンドウが最小化または最大化されているときは、位置とサイズを元に戻します |