两句话我都
听不懂。
现在,我将你的需求实现一遍:
第一步,用向导生成一个win32桌面程序
第二步,定义三个句柄的全局变量
HWND g_hMain, g_hBtn, g_hTxt;
第三步,创建两个控件
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   hInst = hInstance; // 将实例句柄存储在全局变量中
  g_hMain = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
   g_hBtn = CreateWindowW( L"BUTTON", L"一个按钮", WS_VISIBLE|WS_CHILDWINDOW, 2,2,100,20, g_hMain, NULL, hInstance, NULL );
   g_hTxt = CreateWindowW( L"STATIC", L"静态文本", WS_VISIBLE|WS_CHILDWINDOW, 2,42,100,20, g_hMain, NULL, hInstance, NULL );
   ShowWindow(g_hMain, nCmdShow);
   UpdateWindow(g_hMain);
   return TRUE;
}
第四步,添加消息处理
    while (GetMessage(&msg, nullptr, 0, 0))
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        if( msg.hwnd==g_hMain && (msg.message==WM_LBUTTONDOWN || msg.message==WM_LBUTTONUP) )
        {
            POINT pt = msg.pt;
            RECT rt_txt;
            GetWindowRect( g_hTxt, &rt_txt );
            if( PtInRect(&rt_txt,pt) )
            {
                if( msg.message == WM_LBUTTONDOWN )
                    MessageBoxW( msg.hwnd, L"你在静态标签上按下了左键", L"", MB_OK );
                else if( msg.message == WM_LBUTTONUP )
                    MessageBoxW( msg.hwnd, L"你在静态标签上抬起了左键", L"", MB_OK );
            }
        }
        else if( msg.hwnd==g_hBtn && (msg.message==WM_LBUTTONDOWN || msg.message==WM_LBUTTONUP) )
        {
            if( msg.message==WM_LBUTTONDOWN )
                MessageBoxW( msg.hwnd, L"你在按钮上按下了左键", L"", MB_OK );
            else if( msg.message==WM_LBUTTONUP )
                MessageBoxW( msg.hwnd, L"你在按钮上抬起了左键", L"", MB_OK );
        }
    }
再有问题的话,你最好在周围找个人问问。因为这些东西虽简单,但繁杂,描述起来不方便,适合手把手教。
[此贴子已经被作者于2020-6-2 11:14编辑过]