怎么用C语言编写一个windows窗口?

如题所述

    调用window库窗口函数即可创建windows窗口。

    必须使用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的代码如下:

    #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);
    }

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-18
其实挺容易,用vc6,自动生成一个win32应用程序,系统会自动生成一个窗口,就可以了
大致步骤就是注册窗口类,显示更新窗口,设置消息循环本回答被提问者采纳
第2个回答  2011-08-18
这个很难的 我建议你用c#吧 c语言的窗口虽然能做 但是用c的目的是先学习算法 无需过多设计窗口
第3个回答  2012-03-29
#include <windows.h>
void main()
{
MessageBox(NULL," 简单!","这个简单吗?",MB_OK);
}
第4个回答  2011-08-18
用VC设计窗口,C我不会做窗口

怎么用C语言编写一个windows窗口?
调用window库窗口函数即可创建windows窗口。必须使用windows的编译器,如VC,MS等等。RegisterClassEx函数:该函数注册在随后调用CreateWindow函数和CreateWindowEx函数中使用的窗口类。 RegisterClass函数己经由函数RegisterClassEx函数来代替,但是,如果不需要设置类的小目标则仍然可以使用RegisterClass函数。CreateWindowE...

用c语言怎么创建一个窗口?
通过调用windows API来创建窗口:#include<windows.h>int main(){MessageBox(NULL,"Hello World!","C图形程序",MB_OK);return 0;}这个是最简单的了 至于MFC QT 什么的 代码太多了

怎么用c语言在windows下弹出一个置顶的窗口?
1、C++Builder中,先学会最基本的编写一个可运行的win程序后,将这个程序的窗体的FormStyle属性设定为置顶窗( fsStayOnTop),VC中的窗体也有类似的选项。设定好后编译成可运行的程序,运行编译生成的程序就会弹出置顶窗体。2、也可调用windows的API函数(调用系统功能),所有能调用API的编程软件都有类似的...

学c语言如何做出有界面的程序
如果你只是用普通的C语言编程工具编写的话,其实很麻烦,但还是可以的,#include<windows.h>要包含,然后按照创建窗口的方法创建就行了,很麻烦,如果你不了解winodows运行原理和编程原理你很难知道怎么去做一个实用窗口界面。。。不过有简单的方法,那就是不用C语言,改用MFC,Delphi,java,c#等专业的...

C语言如何创建窗口
windows下通过调用API来创建窗口:include<windows.h> int main(){ MessageBox(NULL,"Hello World!","C图形程序",MB_OK);return 0;} linux下通过调用图形库来创建窗口。楼主如果是学C的话,先不要急于搞这些东西,把基础打扎实才是最重要的,GUI可以后学。基础扎实了,这些只是很简单的东西。

用Dev C++如何编写出Windows程序呢?
1、首先打开Dev C++软件,点击顶部的文件菜单,选择新建下面的项目选项。2、接下来在弹出的新建项目界面选择Windows Application选项,然后勾选C++选项。3、然后会弹出另存为界面,给项目起一个名字,选择类型为dev。4、在Dev C++中看到目录,这个代表Windows窗体应用基本结构已经创建好。5、打开main.cpp文件...

求高手帮忙如何给一个C语言编写软件的图形界面
include<windows.h> HANDLE hOut;void ShadowWindowLine(char *str); \/\/ 在具有阴影效果的窗口中显示一行字符,窗口为居中显示 void DrawBox(bool bSingle, SMALL_RECT rc); \/\/ 绘制边框 void main(){ hOut = GetStdHandle(STD_OUTPUT_HANDLE); \/\/ 获取标准输出设备句柄 SetConsoleOutputCP(437);...

学c语言如何做出有界面的程序
1、新建一个C项目,点击文件,新建,项目,选择C++Win32控制台应用。2、在项目向导中设置,会默认生产一个项目框架。3、可以使用color函数变化字体和窗口的颜色。4、要在C语言中实现颜色的变化,需要引入windows.h头文件,即#include <windows.h>方可调用color函数,system("color 02")类似的,但不能...

C语言怎么做界面?
Message, wParam, lParam);}return 0;}\/* Win32 GUI程序的主要功能:执行从这里开始 *\/int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {WNDCLASSEX wc; \/* 窗口的属性结构 *\/HWND hwnd; \/* "句柄" 一个窗口的标识符 *\/MSG Msg; \/* 所有消...

用c语言怎样做图形操作界面?详细点,最好有代码
\/* 以下程序在Visual C++ 6.0测试通过,能够出现一个正规的Windows窗口 *\/ pragma comment(linker,"\/SUBSYSTEM:Windows \/ENTRY:mainCRTStartup")include <windows.h> \/* 使类名成为全局变量 *\/ char szClassName[ ] = "WindowsApp";\/* 这个函数由Windows内部函数DispatchMessage()调用 *\/ LRESULT...

相似回答