在c语言Windows窗口添加按钮,C语言用windows.h创建按钮的问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

ShowWindow(hWnd, iCmdShow);

UpdateWindow(hWnd);

while (GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

static int cxChar, cyChar;

static HWND hwndButton[10];

switch (message)

{

case WM_CREATE:

case WM_PAINT:

if (Flag)

{

PrepareSnake();

SetSnakeTime(hWnd, DEFAULT);

cxChar = 2 * LOWORD(GetDialogBaseUnits());

cyChar = 2 * LOWORD(GetDialogBaseUnits());

hwndButton[0] = CreateWindow(

TEXT("button"),

TEXT("Start"),

WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,

330,

180,

cxChar * 10,

cxChar * 2,

hWnd,

(HMENU)0,

((LPCREATESTRUCT)lParam)->hInstance,

ID_START);

return 0;

}

hdc = BeginPaint(hWnd, &ps);

DrawSnake(hWnd, hdc);

if (!CheckLife(SnakeHead->x, SnakeHead->y))

{

KillTimer(hWnd, ID_RunTime);

LOGFONT font;

ZeroMemory(&font, sizeof(LOGFONT));

font.lfHeight = SizeOfGameOver;

HFONT hFont = CreateFontIndirect(&font);

SetTextColor(hdc, GOColor);

SelectObject(hdc, hFont);

TextOut(hdc, GAME_x, GAME_y, TEXT("GAME"), strlen("GAME"));

TextOut(hdc, OVER_x, OVER_y, TEXT("OVER"), strlen("OVER"));

Death = TRUE;

return 0;

}

return 0;

EndPaint(hWnd, &ps);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows.h 是 Windows 操作系统的头文件,其中包含了大量的函数和常量,用于 Windows 应用程序的开发。下面是一些常用的 Windows.h 库函数及其使用例子: 1. MessageBox 函数 该函数用于显示一个消息框,提示用户执行某些操作或显示一些信息。它的原型如下: ```c int MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType ); ``` 其中,hWnd 为消息框的父窗口句柄,lpText 为消息文本,lpCaption 为消息框的标题,uType 为消息框的类型。下面是一个例子: ```c #include <Windows.h> int main() { MessageBox(NULL, "Hello, World!", "Message", MB_OK); return 0; } ``` 该程序会弹出一个消息框,显示 "Hello, World!",标题为 "Message",并且有一个 OK 按钮。 2. GetWindowText 函数 该函数用于获取指定窗口的文本内容。它的原型如下: ```c int GetWindowText( HWND hWnd, LPTSTR lpString, int nMaxCount ); ``` 其中,hWnd 为窗口句柄,lpString 为输出缓冲区,nMaxCount 为输出缓冲区的大小。下面是一个例子: ```c #include <Windows.h> #include <stdio.h> int main() { HWND hWnd = GetDesktopWindow(); TCHAR title[256] = { 0 }; GetWindowText(hWnd, title, sizeof(title)); printf("Desktop title: %s\n", title); return 0; } ``` 该程序会获取桌面窗口的标题,并打印出来。 3. CreateWindow 函数 该函数用于创建一个窗口。它的原型如下: ```c HWND CreateWindow( LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam ); ``` 其中,lpClassName 为窗口类名,lpWindowName 为窗口标题,dwStyle 为窗口样式,x 和 y 分别为窗口左上角的坐标,nWidth 和 nHeight 分别为窗口的宽和高,hWndParent 为窗口的父窗口句柄,hMenu 为菜单句柄,hInstance 为当前实例句柄,lpParam 为创建窗口时传递的参数。下面是一个例子: ```c #include <Windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS wc = { 0 }; wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.lpszClassName = "MyWindowClass"; RegisterClass(&wc); HWND hWnd = CreateWindow( "MyWindowClass", "Hello, World!", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ); ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); MSG msg = { 0 }; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } ``` 该程序会创建一个窗口,并显示 "Hello, World!"。当用户关闭窗口时,程序会退出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值