c语言怎么编出windows窗口

现在编出的程序一直都是以DOS控制台的形式出现,难看的要命,怎么才能把它编成windows这种窗口,要看什么书?... 现在编出的程序一直都是以DOS控制台的形式出现,难看的要命,怎么才能把它编成windows这种窗口,要看什么书? 展开
 我来答
乐跑小子
2016-01-12 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:7%
帮助的人:4648万
展开全部
  1. 调用window库窗口函数即可创建windows窗口。

  2. 必须使用windows的编译器,如VC,MS等等。

    RegisterClassEx函数:
    该函数注册在随后调用CreateWindow函数和CreateWindowEx函数中使用的窗口类。 RegisterClass函数己经由函数RegisterClassEx函数来代替,但是,如果不需要设置类的小目标则仍然可以使用RegisterClass函数。
    CreateWindowEx函数:
    该函数创建一个具有扩展风格的层叠式窗口、弹出式窗口或子窗口,其他与CreateWindow函数相同。关于创建窗口和其他参数的内容,请参看CreateWindow。具体仍可见微软的msdn。
    消息处理函数WindowProc:
    该函数是一个应用程序定义的函数。它处理发送给窗口的消息。WINDPROC类型定义了一个指向该回调函数的指针。WindowProc是用于应用程序定义函数的占位符。
    函数原型:
    LRESULT CALLBACK WindowProc (HWND hwnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);
    参数:
    hwnd:指向窗口的句柄。
    uMsg:指定消息类型。
    wParam:指定其余的、消息特定的信息。该参数的内容与UMsg参数值有关。
    IParam:指定其余的、消息特定的信息。该参数的内容与uMsg参数值有关。
    返回值:返回值就是消息处理结果,它与发送的消息有关。

    一个简单的Window的代码如下:

  3. #include <Windows.h>
    #include <tchar.h>
    LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
    int WinMain( 
        __in HINSTANCE hInstance, 
        __in_opt HINSTANCE hPrevInstance, 
        __in LPSTR lpCmdLine, 
        __in int nShowCmd 
        )
    {
        TCHAR *szName = _T("myWindow");
        WNDCLASSEX wc = {0};
        HWND hWnd     = NULL;
        MSG Msg       = {0};
        wc.cbClsExtra    = 0;
        wc.cbWndExtra    = 0;
        wc.cbSize        = sizeof(WNDCLASSEX);
        wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//通过函数来设置一个白色的背景,这里大家设置为NULL看看,会很有趣的
        wc.hCursor       = NULL;//不设置
        wc.hIcon         = NULL;//不设置
        wc.hIconSm       = NULL;//不设置
        wc.hInstance     = hInstance;//当前程序的句柄,hInstance是有系统给传递的
        wc.lpfnWndProc   = WinProc;//窗口处理过程的回调函数。
        wc.lpszClassName = szName;//窗口类的名字。
        wc.lpszMenuName  = NULL; 
        wc.style         = CS_HREDRAW | CS_VREDRAW; 
        RegisterClassEx(&wc);//在系统中注册
        hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,szName,_T("我的窗口我喜欢"),WS_OVERLAPPEDWINDOW,
            200,100,600,400,NULL,NULL,hInstance,NULL);//创建窗口,窗口标题为"我的窗口我喜欢"
        if(hWnd == NULL)
        {
            MessageBox(NULL,_T("There's an Error"),_T("Error Title"),MB_ICONEXCLAMATION|MB_OK);
            return 0;
        }
        ShowWindow(hWnd,nShowCmd);//显示窗口
        UpdateWindow(hWnd);
        //下面是对消息的循环处理,大家先不必管这些,下节课我会细说的
        while(GetMessage(&Msg,NULL,0,0))
        {
            TranslateMessage(&Msg);//翻译消息
            DispatchMessage(&Msg);//分派消息
        }
        return Msg.message;
    }
    //消息处理函数
    LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam)
    {
        switch(Msg)//处理消息过程
        {
        case WM_DESTROY://响应鼠标单击关闭按钮事件
            PostQuitMessage(0);//退出消息队列
            return 0;//退出函数
        }
        return DefWindowProc(hWnd,Msg,wParam,lParam);
    }

9150216033ing
2011-10-30
知道答主
回答量:6
采纳率:0%
帮助的人:17.7万
展开全部
大哥!学C语言只是学算法,除非你已是编程高手,否则你不可能变出什么好东西,最好直接去看《windows程序设计》,126元。最好再请个老师,选我吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
木子小三5f
2011-10-29 · TA获得超过3468个赞
知道小有建树答主
回答量:1299
采纳率:0%
帮助的人:1325万
展开全部
看Windows API先,也可以学MFC。
要编写Windows的程序,能输出窗口、按钮、声音等等你就得学Windows的API。而如果你要开发Android应用就看Android API。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Clor001
2011-10-29 · TA获得超过803个赞
知道小有建树答主
回答量:399
采纳率:0%
帮助的人:378万
展开全部
MFC 。入门很难
C语言基础不好,C++不会的话,还是别想太多了,扎实好基础吧,揠苗助长,只会跌得很惨
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吉星河000
2011-10-29
知道答主
回答量:1
采纳率:0%
帮助的人:1692
展开全部
用vb或者mfc,前者要看vb的内容,后者需要看c++和mfc方面的,当然也可以使用c++ builder啦,这个也是很简单的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luotuo868686
2011-10-29
知道答主
回答量:22
采纳率:0%
帮助的人:11.7万
展开全部
对,像他们说的那样看那些涉及到图形编程的书,最著名的就是windows程序设计第五版
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shaoy456789
2011-10-30
知道答主
回答量:10
采纳率:0%
帮助的人:1.7万
展开全部
可以看看windows编程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式