一个有趣的小程序(点不到的按钮)
很早之前在其他地方看到的,觉得特有意思,刚好自己在复习WINDOWS SDK,就手写了一下子运行界面如下图,很简单的一个小程序,喜欢的就拿走吧,欢迎研究
程序源码如下:
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <time.h>
#include <tchar.h>
HINSTANCE g_hInstance = 0;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPreInstance,
LPSTR lpCmdLine,
int nShowCmd
)
{
g_hInstance = hInstance;
srand((unsigned)time(NULL));
//1.注册窗口类
WNDCLASS wc = { 0 };
wc.lpszClassName = _T("MyClass");
wc.lpfnWndProc = WndProc;
wc.hbrBackground = GetSysColorBrush(COLOR_WINDOW);
RegisterClass(&wc);
//2.创建窗口
HWND hWnd = CreateWindow(
wc.lpszClassName,
_T("顽皮的按钮"),
WS_OVERLAPPEDWINDOW,
200, 100,
640, 480,
NULL,
NULL,
g_hInstance,
0
);
//3.更新显示窗口
UpdateWindow(hWnd);
ShowWindow(hWnd, SW_SHOW);
//4.消息循环
MSG Msg = { 0 };
while (GetMessage(&Msg, 0, 0, 0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return (int)Msg.lParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static int nCnt = 0;
switch (uMsg)
{
case WM_CREATE:
{
HWND hButton = CreateWindow(
_T("button"),
_T("来点我"),
WS_CHILD | WS_VISIBLE,
10, 10,
80, 45,
hWnd,
HMENU(0x1000),
g_hInstance,
0
);
}break;
case WM_COMMAND:
{
DWORD nCode = HIWORD(wParam);
DWORD nId = LOWORD(wParam);
if (nId == 0x1000 && nCode == BN_CLICKED)
{
if (nCnt == 10)
{
MessageBox(hWnd, _T("恭喜你点到了!"), _T("嘿嘿"), MB_OK);
PostMessage(hWnd, WM_CLOSE, 0, 0);
}
HWND hButton1 = GetDlgItem(hWnd, 0x1000);
int x = rand() % 520;
int y = rand() % 390;
MoveWindow(hButton1, x, y, 100, 50, true);
UpdateWindow(hWnd);
nCnt++;
}
}break;
case WM_CLOSE:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
编译环境:
vs2017 +win10
附件忘了发了,不好意思
解压密码:www.52pojie.cn 把你复制的所有的内容拷贝到一个txt文件,删除项目里的,再把TXT的拷贝进去,重新构建就可应该能解决,
然后这个点不到的按钮至少有2种方法按到:
1按住右键移到按钮上不要移动位置,点击
2拖一个任意窗口(A)遮住按钮一半,从这个A移动鼠标到按钮上,一旦脱离窗口就不要动,直接点击 醉情的大叔 发表于 2020-3-7 00:59
学习了,为啥我运行报错啊,我是VS 2019...因为我缺少什么扩展吗
把_T("顽皮的按钮") 声明成变量再替换试下 能发成品吗 老大 我能点到,在1楼{:301_997:} 这个要考验手速的? a2204297 发表于 2019-12-5 12:58
这个要考验手速的?
应该不用。 学习借鉴一下,谢谢分享 学习了,为啥我运行报错啊,我是VS 2019...因为我缺少什么扩展吗 Vickers2PJ 发表于 2020-3-16 11:19
把_T("顽皮的按钮") 声明成变量再替换试下
...不好意思,回复晚了,~~我不太会这个声明,百度了也,搞不明白.~~~
页:
[1]
2