戻る 第16章 コントロールの使用
(アップダウンコントロール)
次へ

ソース 実行ファイル
sdk16.cpp sdk16.exe

今回はアップダウンコントロールです。
スクロールバーに似ていますが矢印しかありません。
テキストボックスにくっつけて使うと数字の増減が
自動的に反映されるので手軽に使えて便利です。

今回からコモンコントロールになります。
Windows95以降から新しく追加されたコントロールです。
includeにcommctrl.hを追加しライブラリにcomctl32.libを追加する必要があります。
スタイル 効果
UDS_ALIGNLEFT アップダウンコントロールを兄弟ウインドウの左側に配置する
UDS_ALIGNRIGHT アップダウンコントロールを兄弟ウインドウの右側に配置する
UDS_ARROWKEYS 矢印キーを有効にする
UDS_AUTOBODYS Z軸で前のウインドウを兄弟ウインドウにする。
UDS_HORZ アップダウンコントロールを水平にする
UDS_NOTHOUSANDS 大きい値ではカンマをつけない
UDS_SETBUDDYINT コントロールの位置が変更されると自動的に兄弟ウインドウの
テキストへ現在の位置が描画される。
UDS_WRAP アップダウンコントロールの位置がマージンを越えるとラップ表示される
#include <windows.h> #include <commctrl.h>//コモンコントロールの使用の為 #pragma comment( lib,"comctl32.lib " )//コモンコントロールの使用の為 #define SCR_MAX 255 #define SCR_MIN 0 HWND ud[2];//アップダウンコントロール用 HWND _ud_t;//アップダウンのテキストボックス用 LRESULT CALLBACK WinProc(HWND hwnd, UINT msg,WPARAM wP, LPARAM lP) { char str[40]; HDC hdc; switch(msg){ case WM_CREATE: _ud_t=CreateWindowEx(0, "EDIT", "", WS_CHILD| WS_BORDER, 32, 32,64, 24, hwnd, NULL, (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL); ShowWindow(_ud_t,SW_SHOW); //アップダウンコントロール作成用API関数 ud[0]= CreateUpDownControl( WS_CHILD |WS_VISIBLE |UDS_ALIGNRIGHT |UDS_SETBUDDYINT, 0, 0,0, 0, hwnd,NULL,(HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), _ud_t,//テキストボックスと兄弟Windowにする SCR_MAX,SCR_MIN,//範囲指定 0);//初期値指定 ShowWindow(ud[0],SW_SHOW); //単品のアップダウンコントロール作成 ud[1]= CreateUpDownControl( WS_CHILD |WS_VISIBLE |UDS_SETBUDDYINT, 32,96,64,24, hwnd,NULL,(HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), NULL,//兄弟WindowがないのでNULL指定 SCR_MAX,SCR_MIN, 0); ShowWindow(ud[1],SW_SHOW); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wP, lP); } return 0; }