本节我们将讲述第一个Windows预定义子窗口控件—button按钮控件的创建及使用。
本节必须掌握的知识点:
第48练:按钮控件
创建预定义子窗口
子窗口与父窗口信息传递
按钮
控件和颜色
第49练:单选框和复选框状态的判断
第50练:自定义按钮控件
8.11 第48练:按钮控件
/*------------------------------------------------------------------
048 WIN32 API 每日一练
第48个例子BTNLOOK.C:按钮控件
WM_DRAWITEM 消息
WM_COMMAND消息
GetDialogBaseUnits函数
SetBkMode函数
ScrollWindow函数
(c) www.bcdaren.com, 2020
----------------------------------------------------------------*/
#include <windows.h>
struct
{
int iStyle; //按钮样式
TCHAR * szText;//显示文本
}
button[] =
{
BS_PUSHBUTTON, TEXT("PUSHBUTTON"),
BS_DEFPUSHBUTTON, TEXT("DEFPUSHBUTTON"),
BS_CHECKBOX, TEXT("CHECKBOX"),
BS_AUTOCHECKBOX, TEXT("AUTOCHECKBOX"),
BS_RADIOBUTTON, TEXT("RADIOBUTTON"),
//创建与复选框相同的按钮,只不过该框可以灰显,也可以选中或清除。
BS_3STATE, TEXT("3STATE"),
BS_AUTO3STATE, TEXT("AUTO3STATE"),
BS_GROUPBOX, TEXT("GROUPBOX"),
BS_AUTORADIOBUTTON, TEXT("AUTORADIO"),
BS_OWNERDRAW, TEXT("OWNERDRAW")
} ;
#define NUM (sizeof button / sizeof button[0]) //NUM = 10
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT("BtnLook");
HWND hwnd;
…(略)
return msg.wParam;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND hwndButton[NUM];
static RECT rect;
static TCHAR szTop[] = TEXT("message wParam lParam"),
szUnd[] = TEXT("_______ ______ ______"),
szFormat[] = TEXT(