| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 627 人关注过本帖
标题:求大家帮我看一下程序错在哪?静茹窗口的是鼠标不是箭头,并且程序好像陷入 ...
取消只看楼主 加入收藏
风车转风车89
Rank: 2
等 级:论坛游民
帖 子:125
专家分:45
注 册:2014-9-15
结帖率:81.82%
收藏
已结贴  问题点数:20 回复次数:1 
求大家帮我看一下程序错在哪?静茹窗口的是鼠标不是箭头,并且程序好像陷入了死循环
程序代码:
#include"windows.h"
#include"stdio.h"
#include"tchar.h"

LRESULT CALLBACK WndProc(
    HWND hwnd,
    UINT msg,
    WPARAM wparam,
    LPARAM lparam);


int WINAPI WinMain(
  HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
  LPSTR lpCmdLine,
  int nShowCmd )
{
    BOOL msg_flag;
    MSG msg;
    HWND hwnd;
    WNDCLASS wndcls;

    wndcls.cbClsExtra=0;
    wndcls.cbWndExtra=0;
    wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
    wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
    wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wndcls.hInstance=hInstance;
    wndcls.lpfnWndProc=WndProc;
    wndcls.lpszClassName=_T("C PROGRAM DESIGN");
    wndcls.lpszMenuName=NULL;
    wndcls.style=CS_HREDRAW|CS_VREDRAW;
    RegisterClass(&wndcls);
    hwnd=CreateWindow(_T("C PROGRAM DESIGN"),_T("HELLO 大家好!"),WS_OVERLAPPEDWINDOW,
         CW_USEDEFAULT,0, CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
    ShowWindow(hwnd,SW_NORMAL);
    UpdateWindow(hwnd);
    msg_flag=GetMessage(&msg,hwnd,0,0);
    while(msg_flag)
    {
        if(msg_flag==-1)
            return -1;
        else
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
}

LRESULT CALLBACK WndProc(
    HWND hwnd,
    UINT msg,
    WPARAM wparam,
    LPARAM lparam
)
{
    HDC hdc;
    PAINTSTRUCT ps;

    switch(msg)
    {
    case WM_CHAR:
        MessageBox(hwnd,TEXT("这是对话空"),_T("您好!"),0);
        break;
    case WM_LBUTTONDOWN:
        MessageBox(hwnd,TEXT("这是对话空"),_T("您好!"),0);
        hdc=GetDC(hwnd);
        TextOut(hdc,0,0,_T("这是程序员之家"),strlen("这是程序员之家"));
        ReleaseDC(hwnd,hdc);
        break;
    case WM_PAINT:
        HDC hdc;
        hdc=BeginPaint(hwnd,&ps);
        TextOut(hdc,0,0,_T("这是程序员之家"),strlen("这是程序员之家"));
        EndPaint(hwnd,&ps);
        ReleaseDC(hwnd,hdc);
        break;
    case WM_CLOSE:
        if(IDYES==MessageBox(hwnd,TEXT("是否真的结束?"),_T("message"),MB_YESNO))
            DestroyWindow(hwnd);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd,msg,wparam,lparam);
    return 0;
    }
}
2015-04-25 21:43
风车转风车89
Rank: 2
等 级:论坛游民
帖 子:125
专家分:45
注 册:2014-9-15
收藏
得分:0 
谢谢你,我知道为什么进去死循环了,在消息循环中,msgflag只能得到一次消息,在while里msgflag得知一直不变,说已经入死循环,已经改过来了,还是要谢谢你
2015-05-04 23:47
快速回复:求大家帮我看一下程序错在哪?静茹窗口的是鼠标不是箭头,并且程序好像 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012726 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved