| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 746 人关注过本帖
标题:这是在vs2010 中的一个窗口 编译没问题 ,程序在运行,但窗口没出现!!
只看楼主 加入收藏
staler
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2011-11-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
这是在vs2010 中的一个窗口 编译没问题 ,程序在运行,但窗口没出现!!
#include <Windows.h>
#include <stdio.h>
#include <tchar.h>
//#include  "ATLCONV.H "
//#include   <atlbase.h>
//#include <atlconv.h>


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

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nShowCmd)
{
    WNDCLASS wndcls;

    wndcls.cbClsExtra=0;
    wndcls.cbWndExtra=0;
    wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
    wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
    wndcls.hInstance=hInstance;
    wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wndcls.lpfnWndProc=WinProc;
    wndcls.lpszClassName=_T("TEXT");
    wndcls.lpszMenuName=NULL;
    wndcls.style=CS_HREDRAW | CS_VREDRAW;

    RegisterClass(&wndcls);

    HWND hwnd;
    hwnd=CreateWindow(_T("TEXT"),_T("TEXT"),WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);

    ShowWindow(hwnd,SW_NORMAL);
    UpdateWindow(hwnd);

    MSG umsg;
    while(GetMessage(&umsg,NULL,0,0))
    {
        TranslateMessage(&umsg);
        DispatchMessage(&umsg);

    }

return 0;

}
LRESULT CALLBACK WinProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
    switch(umsg)
    {
        case WM_CHAR:
            TCHAR szchar[20];
            _stprintf(szchar,_T("char is %d"),wParam);
            MessageBox(hwnd,szchar,_T("TEXT"),0);
            break;
        case WM_LBUTTONDOWN:
            MessageBox(hwnd,_T("mouse clicked!"),_T("TEXT"),0);
            HDC hDc;
            hDc=GetDC(hwnd);
            TextOut(hDc,0,50,_T("This is my place "),wcslen(_T("This is my place ")));
            ReleaseDC(hwnd,hDc);
            break;
        case WM_PAINT:
            HDC hdc;
            PAINTSTRUCT ps;
            hdc=BeginPaint(hwnd,&ps);
            TextOut(hdc,0,0,_T("I should stand up the place always "),wcslen(_T("I should stand up the place always ")));
            EndPaint(hwnd,&ps);

            break;
        case WM_CLOSE:
            if(IDYES==MessageBox(hwnd,_T("Are you sure close this window ?"),_T("TEXT"),MB_YESNO))
            {
                DestroyWindow(hwnd);
            }
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        defalt:
            return DefWindowProc(hwnd,umsg,wParam,lParam);
    }
    return 0;

}
搜索更多相关主题的帖子: include 
2011-11-13 15:09
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:10 
编译没问题?不是吧?最后那个default都打错了。
LRESULT CALLBACK WinProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
    TCHAR szchar[20];
    HDC hDc;
    PAINTSTRUCT ps;

    switch(umsg)
    {
        case WM_CHAR:

            _stprintf(szchar,_T("char is %d"),wParam);
            MessageBox(hwnd,szchar,_T("TEXT"),0);
            break;
        case WM_LBUTTONDOWN:
            MessageBox(hwnd,_T("mouse clicked!"),_T("TEXT"),0);
            hDc=GetDC(hwnd);
            TextOut(hDc,0,50,_T("This is my place "),wcslen(_T("This is my place ")));
            ReleaseDC(hwnd,hDc);
            break;
        case WM_PAINT:
            hDc=BeginPaint(hwnd,&ps);
            TextOut(hDc,0,0,_T("I should stand up the place always "),wcslen(_T("I should stand up the place always ")));
            EndPaint(hwnd,&ps);

            break;
        case WM_CLOSE:
            if(IDYES==MessageBox(hwnd,_T("Are you sure close this window ?"),_T("TEXT"),MB_YESNO))
            {
                DestroyWindow(hwnd);
            }
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        default:
            return DefWindowProc(hwnd,umsg,wParam,lParam);
    }
    return 0;

}

我们都在路上。。。。。
2011-11-16 12:21
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:10 
就是default的问题。
编译是不会错,因为你写成 defalt:,就好比定义了一个标号,编译器肯定不会把它看成是一个语法错误。
但是switch不会执行到 defalt标号,所以也没有执行DefWindowProc,你的窗口肯定就出不来了。
2011-11-16 15:30
快速回复:这是在vs2010 中的一个窗口 编译没问题 ,程序在运行,但窗口没出现! ...
数据加载中...
 
   



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

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