谁能教我 怎么用C语言编写 一个窗口? 求源代码 加上注释 谢谢

谁能教我 怎么用C语言编写 一个窗口? 求源代码 加上注释 谢谢,第1张

#include <stdio.h>

#include <stdlib.h>

#include <windows.h>

int main()

{

printf("输入一个字符, 就会出现窗口")

getch()

MessageBox(NULL,"这就是你要的窗口!这就是你要的窗口!\n这就是你要的窗口!这就是你要的窗口!\n这就是你要的窗口!这就是你要的窗口!","hahah",MB_ICONERROR | MB_YESNO)

return 0

}

步骤:

1、注册窗口类;

2、创建窗体;

3、消息循环;

4、编写窗口消息处理函数。

代码:

#include <windows.h>

#include<tchar.h>

LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)

int WINAPI _tWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR szCmdLine, int nCmdShow)

{

    WNDCLASS wc

    wc.style = CS_HREDRAW | CS_VREDRAW

    wc.lpfnWndProc = WindowProc

    wc.cbClsExtra = 0

    wc.cbWndExtra = 0

    wc.hInstance = hInstance

    wc.hIcon = NULL

    wc.hCursor = LoadCursor(NULL,IDC_ARROW)

    wc.hbrBackground = (HBRUSH)COLOR_WINDOW//(HBRUSH)GetStockObject()

    wc.lpszMenuName = NULL

    wc.lpszClassName = _T("MyWindowClass")

    if (!RegisterClass(&wc))

    {

        MessageBox (NULL, _T("无法注册窗口类"), _T("错误"), MB_OK)

        return 0 

    }

    HWND newWindow = CreateWindow(

                                        _T("MyWindowClass"),

                                        _T("我的第一个winapi程序"),

                                        WS_OVERLAPPEDWINDOW,

                                        0,

                                        0,

                                        CW_USEDEFAULT,

                                        CW_USEDEFAULT,

                                        NULL,

                                        NULL,

                                        hInstance,

                                        NULL

                                    )

    if (NULL == newWindow)

    {

        MessageBox (NULL, _T("无法创建窗体"), _T("错误"), MB_OK)

        return 0

    }

    ShowWindow(newWindow, nCmdShow)

    UpdateWindow(newWindow)

    MSG msg

    while(GetMessage(&msg, NULL, 0, 0))

    {

        TranslateMessage(&msg)

        DispatchMessage(&msg)

    }

}

    LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

    {

        switch (uMsg)

        {

            case WM_DESTROY:

            {

                PostQuitMessage(0)

                break

            }

            default :

                return DefWindowProc(hwnd, uMsg, wParam, lParam)

        }

        return 0

    }

就是一个只有标题栏、关闭按钮、最小化按钮、最大化/还原按钮、显示区域的窗体。

第一中方法:告诉你一个简单高效的办法 你可以把原来的那些C文件做成标准的静态链接库文件,然后在VC中加载你的静态链接库,在需要使用C函数的文件中包含头文件,就可以了。 另一种方法:另外C++一般应该是兼容C语言的吧,所以如果你还是没有经过编译的C源文件,直接放到工程跟目录下,直接添加到工程中,就可以了,在需要使用前记得声明,不用什么extern'C' ,这个是针对标准库,这个只是告诉编译器讲该函数按照C语言方式编译,如果不是做嵌入式,这个基本对你没有用处,可以暂时不考虑。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12146269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存