| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 308 人关注过本帖
标题:刚刚接触windowsapi,这个例子是肿么了,是我编译坏境配置的问题么?
只看楼主 加入收藏
CatherineZYR
Rank: 2
等 级:论坛游民
帖 子:5
专家分:25
注 册:2014-3-14
收藏
 问题点数:0 回复次数:0 
刚刚接触windowsapi,这个例子是肿么了,是我编译坏境配置的问题么?
这是代码:

#include<windows.h>
#include<stdio.h>

HINSTANCE  hinst;//全局变量
//函数声明
int WINAPI WinMain(HINSTANCE ,HINSTANCE,LPSTR,int);
LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);


//显示一个窗口
int WINAPI WinMain (HINSTANCE hinstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    WNDCLASSEX wcx;//窗口类
    HWND hwnd;//窗口句柄
    MSG msg;//消息
    BOOL fGotMessage;//是否成功获得消息、
    hinst =hinstance;//应用程序实例句柄,保存为全局变量

    //填充窗口类的数据结构
    wcx.cbSize = sizeof(wcx);//结构体的大小
    wcx.style            = CS_HREDRAW | CS_VREDRAW;//大小改变时重绘界面
    wcx.lpfnWndProc    = MainWndProc;//窗口消息处理函数
    wcx.cbClsExtra        = 0;//不使用类内存
    wcx.cbWndExtra        = 0;//不是用窗口内存
    wcx.hInstance        = hinstance;//所属的应用程序实例句柄
    wcx.hIcon            = LoadIcon(hinstance, IDI_APPLICATION);//默认图标
    wcx.hCursor        = LoadCursor(NULL, IDC_ARROW);//默认光标
    wcx.hbrBackground    = (HBRUSH)(WHITE_BRUSH);//白色背景
    wcx.lpszMenuName    =NULL;//菜单
    wcx.lpszClassName    = "搭错车的小火柴";//窗口类名
    wcx.hIconSm        = (HICON)LoadImage(hinstance, MAKEINTRESOURCE(5),IMAGE_ICON,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CXSMICON),LR_DEFAULTCOLOR);//小图标

    //注册窗口类
    if(!RegisterClassEx(&wcx))
    {return 1;}

    //创建窗口   窗口名  窗口标题  窗口样式  默认水平位置  默认垂直位置  默认宽度  默认高度  无父窗口  使用窗口类的菜单  应用程序实例句柄  创建窗口时无数据
    hwnd=CreateWindow("搭错车的小火柴", "搭错车的小火柴", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, (HWND)NULL, NULL, hinstance, NULL);//发生错误 error C2664: “CreateWindowExA”: 不能将参数 10 从“HWND”转换为“HMENU”,最后改变了倒数第三个参数的属性
    /*HWND CreateWindow(
       LPCTSTR lpClassName,       // 指向注册类名的指针
       LPCTSTR lpWindowName,   // 指向窗口名称的指针
       DWORD dwStyle,                  // 窗口风格
       int x,                                      // 窗口的水平位置
       int y,                                      // 窗口的垂直位置
       int nWidth,                            // 窗口的宽度
       int nHeight,                           // 窗口的高度
       HWND hWndParent,             // 父窗口的句柄
       HMENU hMenu,                    // 菜单的句柄或是子窗口的标识符
       HANDLE hlnstance,              // 应用程序实例的句柄
       LPVOID lpParam                  // 指向窗口的创建数据
);*/


    if(!hwnd)
    {  return 1;}

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

    //消息循坏
    while((fGotMessage=GetMessage(&msg,(HWND)NULL,0,0))!=0&&fGotMessage!=-1)
    {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
    }
    return msg.wParam;
}

//窗口消息的默认处理
LRESULT CALLBACK MainWndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    switch(uMsg)
    {
    case WM_DESTROY: ExitThread(0);return 0;
    default :return DefWindowProc(hwnd,uMsg,wParam,lParam);
    }
}
附:在codeblocks里面可以运行,但是在vs2012不行,这是怎么了呢
搜索更多相关主题的帖子: 应用程序 include 
2014-04-14 23:02
快速回复:刚刚接触windowsapi,这个例子是肿么了,是我编译坏境配置的问题么?
数据加载中...
 
   



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

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