回 帖 发 新 帖 刷新版面

主题:求助,这个小程序有什么问题

这是一个显示窗口的WIN32程序,可以运行,但看不到出现的窗口,不知道为什么


#include"windows.h"


LRESULT CALLBACK WNDFUN(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{   
    switch(msg)
    {
    case WM_PAINT:
        {
            HDC hdc=GetDC(hwnd);
            SetBkMode(hdc,TRANSPARENT);
            TextOut(hdc,20,20,"WIN32应用程序",16);
            DeleteDC(hdc);
            break;
        }
    case WM_CLOSE:
        {
            DestroyWindow(hwnd);
            break;
        }
    case WM_DESTROY:
        {
            PostQuitMessage(0);
            break;
        }
    default:
        return DefWindowProc(hwnd,msg,wparam,lparam);
    }
    return 0;
}





int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    //设计窗口类
    WNDCLASS wndcls;
    wndcls.style    =CS_DBLCLKS|CS_VREDRAW|CS_HREDRAW;
    wndcls.lpszMenuName  =NULL;
    wndcls.lpszClassName="Custom Wnd";
    wndcls.lpfnWndProc=WNDFUN;
    wndcls.hInstance  =GetModuleHandle(NULL);
    wndcls.hIcon=NULL;
    wndcls.hCursor=NULL;
    wndcls.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);
    wndcls.cbClsExtra=0;
    wndcls.cbWndExtra=0;


    //注册窗口类
    RegisterClass(&wndcls);

    //创建窗口
    HWND hwnd;
    hwnd=CreateWindow("CustomWnd","Win32App",WS_CAPTION|WS_OVERLAPPEDWINDOW|WS_SYSMENU,50,50,500,500,NULL,NULL,wndcls.hInstance,NULL);


    //显示窗口
    ShowWindow(hwnd,SW_SHOW);
    UpdateWindow(hwnd);

    //进入消息循环
    MSG msg;
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return msg.wParam;
}

回复列表 (共3个回复)

沙发

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
    static TCHAR szAppName[] = TEXT ("HelloWin") ;
    HWND    hwnd ;
    MSG    msg ;
    WNDCLASS    wndclass ;

     wndclass.style          = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc  = WndProc ;
    wndclass.cbClsExtra      = 0 ;
    wndclass.cbWndExtra      = 0 ;
    wndclass.hInstance      = hInstance ;
    wndclass.hIcon          = LoadIcon (NULL, IDI_APPLICATION) ;
      wndclass.hCursor      = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground    = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
      wndclass.lpszMenuName    = NULL ;
    wndclass.lpszClassName    = szAppName ;

    if (!RegisterClass (&wndclass))
     {
        MessageBox (    NULL, TEXT ("This program requires Windows NT!"), 
                          szAppName, MB_ICONERROR) ;
        return 0 ;
     }
    hwnd = CreateWindow( szAppName,    // window class name
            TEXT ("The Hello Program"),    // window caption
            WS_OVERLAPPEDWINDOW,    // window style
            CW_USEDEFAULT,    // initial x position
            CW_USEDEFAULT,    // initial y position
            CW_USEDEFAULT,    // initial x size
            CW_USEDEFAULT,    // initial y size
            NULL,            // parent window handle
            NULL,            // window menu handle
            hInstance,        // program instance handle
            NULL) ;         // creation parameters
     
    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 ;
    RECT        rect ;
     
    switch (message)
     {
    case WM_CREATE:
        return 0 ;

    case     WM_PAINT:
        hdc = BeginPaint (hwnd, &ps) ;
          
        GetClientRect (hwnd, &rect) ;
          
        DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
            DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
              EndPaint (hwnd, &ps) ;
            return 0 ;
          
    case    WM_DESTROY:
        PostQuitMessage (0) ;
        return 0 ;
     }
   return DefWindowProc (hwnd, message, wParam, lParam) ;
}

你比较看看

板凳


没有找到窗口类别。类名写错了,你把Custom Wnd写成CustomWnd了,

3 楼

寻找一直寻找机会的人!
一个趋势中的趋势的项目!
一个直销和传销终结者的项目!
一个帮助普通创业者成功的项目!
   我们在互联网上正在拓展一个生意项目,现在正在寻求合作伙伴。我们认为成功的关键是你是什么人?还有你和谁在一起。我们在乎的是--您是否是有激情、有梦想的人。有意者请跟我们联系,我们和您谈谈,给您讲解一些生意概念,或许我们可以合作。一个集即时网游、交友,娱乐游戏,网络品牌代理商城,互联网平台项目招商进行中……详情QQ空间资料
网商咨询 摩客天宇QQ 909065437 

我来回复

您尚未登录,请登录后再回复。点此登录或注册