HWND CreateStatusWindow( LONG style , LPCTSTR lpszText , HWND hwndParent , UINT wID );style には、ウィンドウスタイルを指定します
| 定数 | 解説 |
|---|---|
| CCS_BOTTOM | クライアント領域の最下部に配置 |
| CCS_TOP | クライアント領域の最上部に配置 |
| SBARS_SIZEGRIP | 右端にサイズグリップを取り入れる 最上部に配置した場合は無効 |
#include <windows.h>
#include <commctrl.h>
#define TITLE TEXT("Kitty on your lap")
LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) {
static HWND hStatus;
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CREATE:
InitCommonControls();
hStatus = CreateStatusWindow(
WS_CHILD | WS_VISIBLE |
CCS_BOTTOM | SBARS_SIZEGRIP ,
TITLE , hWnd , 1
);
return 0;
case WM_SIZE:
SendMessage(hStatus , msg , wp , lp);
return 0;
}
return DefWindowProc(hWnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hWnd;
MSG msg;
WNDCLASS winc;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = winc.cbWndExtra = 0;
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName = NULL;
winc.lpszClassName = TEXT("KITTY");
if (!RegisterClass(&winc)) return -1;
hWnd = CreateWindow(
TEXT("KITTY") , TITLE ,
WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
CW_USEDEFAULT , CW_USEDEFAULT ,
CW_USEDEFAULT , CW_USEDEFAULT ,
NULL , NULL , hInstance , NULL
);
if (hWnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

#include <windows.h>
#include <commctrl.h>
#define TITLE TEXT("Kitty on your lap")
LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) {
static HWND hStatus;
static int iRight[] = { 100 , 200 , -1 };
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CREATE:
InitCommonControls();
hStatus = CreateStatusWindow(
WS_CHILD | WS_VISIBLE |
CCS_BOTTOM | SBARS_SIZEGRIP ,
TITLE , hWnd , 1
);
SendMessage(hStatus , SB_SETPARTS , 3 , (LPARAM)iRight);
return 0;
case WM_SIZE:
SendMessage(hStatus , msg , wp , lp);
return 0;
}
return DefWindowProc(hWnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hWnd;
MSG msg;
WNDCLASS winc;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = winc.cbWndExtra = 0;
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName = NULL;
winc.lpszClassName = TEXT("KITTY");
if (!RegisterClass(&winc)) return -1;
hWnd = CreateWindow(
TEXT("KITTY") , TITLE ,
WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
CW_USEDEFAULT , CW_USEDEFAULT ,
CW_USEDEFAULT , CW_USEDEFAULT ,
NULL , NULL , hInstance , NULL
);
if (hWnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

| 定数 | 解説 |
|---|---|
| 0 | くぼみのある境界線を持つデフォルトの描画 |
| SBT_NOBORDERS | 境界線無し |
| SBT_OWNERDRAW | 親ウィンドウによって描画される |
| SBT_POPOUT | 盛り上がりのある境界線 |
| SBT_RTLREADING | Window 95 : ヘブライ語、またはアラビア語に対応 右から左にテキストを表示 |
#include <windows.h>
#include <commctrl.h>
#define TITLE TEXT("Kitty on your lap")
LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) {
static HWND hStatus;
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CREATE:
InitCommonControls();
hStatus = CreateStatusWindow(
WS_CHILD | WS_VISIBLE |
CCS_BOTTOM | SBARS_SIZEGRIP , TITLE , hWnd , 1
);
return 0;
case WM_LBUTTONDOWN:
SendMessage(hStatus , SB_SETTEXT ,
255 , (LPARAM)TEXT("Magical nyan nyan TARUTO"));
return 0;
case WM_RBUTTONDOWN:
SendMessage(hStatus , SB_SETTEXT ,
255 , (LPARAM)TEXT("Tokyo mew mew"));
return 0;
case WM_SIZE:
SendMessage(hStatus , msg , wp , lp);
return 0;
}
return DefWindowProc(hWnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hWnd;
MSG msg;
WNDCLASS winc;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = winc.cbWndExtra = 0;
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName = NULL;
winc.lpszClassName = TEXT("KITTY");
if (!RegisterClass(&winc)) return -1;
hWnd = CreateWindow(
TEXT("KITTY") , TITLE ,
WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
CW_USEDEFAULT , CW_USEDEFAULT ,
CW_USEDEFAULT , CW_USEDEFAULT ,
NULL , NULL , hInstance , NULL
);
if (hWnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

void MenuHelp( UINT uMsg , WPARAM wParam , LPARAM lParam , HMENU hMainMenu , HINSTANCE hInst , HWND hwndStatus , LPUINT lpwIDs );uMsg には、メッセージ値を指定します
/*resource.h*/ #define IDM_RENA 10000 #define IDM_YUKI 10001 #define IDM_MIMI 10002
/*リソーススクリプト*/
#include "resource.h"
KITTY MENU {
POPUP "Kitty on your lap (&K)" {
MENUITEM "RENA" , IDM_RENA
MENUITEM "YUKI" , IDM_YUKI
MENUITEM "MIMI" , IDM_MIMI
}
}
STRINGTABLE {
IDM_RENA "口が悪くて手が早い、勝手気ままでまさに「猫」。"
IDM_YUKI "思慮深く、清楚でけなげ。"
IDM_MIMI "「ごしゅじんさまだ〜いすきっ!」と飛びついてきそうな甘えん坊。"
}
#include <windows.h>
#include <commctrl.h>
#include "resource.h"
#define TITLE TEXT("Kitty on your lap")
UINT ID[] = {
NULL , IDM_RENA ,
NULL , IDM_YUKI ,
NULL , IDM_MIMI
};
LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) {
static HWND hStatus;
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CREATE:
InitCommonControls();
hStatus = CreateStatusWindow(
WS_CHILD | WS_VISIBLE |
CCS_BOTTOM | SBARS_SIZEGRIP ,
TITLE , hWnd , 1
);
return 0;
case WM_MENUSELECT:
MenuHelp(msg , wp , lp , GetMenu(hWnd) ,
(HINSTANCE)GetWindowLong(hWnd , GWL_HINSTANCE) ,
hStatus , ID);
return 0;
case WM_SIZE:
SendMessage(hStatus , msg , wp , lp);
return 0;
}
return DefWindowProc(hWnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hWnd;
MSG msg;
WNDCLASS winc;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = winc.cbWndExtra = 0;
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName = TEXT("KITTY");
winc.lpszClassName = TEXT("KITTY");
if (!RegisterClass(&winc)) return -1;
hWnd = CreateWindow(
TEXT("KITTY") , TITLE ,
WS_OVERLAPPEDWINDOW | WS_VISIBLE ,
CW_USEDEFAULT , CW_USEDEFAULT ,
CW_USEDEFAULT , CW_USEDEFAULT ,
NULL , NULL , hInstance , NULL
);
if (hWnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

HWND CreateStatusWindow( LONG style , LPCTSTR lpszText , HWND hwndParent , UINT wID );ステータスバーを作成します
| 定数 | 解説 |
|---|---|
| CCS_BOTTOM | クライアント領域の最下部に配置 |
| CCS_TOP | クライアント領域の最上部に配置 |
| SBARS_SIZEGRIP | 右端にサイズグリップを取り入れる 最上部に配置した場合は無効 |
void MenuHelp( UINT uMsg , WPARAM wParam , LPARAM lParam , HMENU hMainMenu , HINSTANCE hInst , HWND hwndStatus , LPUINT lpwIDs );メニューに関連した文字列をステータスバーに表示します