C#程序中如何新建窗体

C#程序中如何新建窗体,第1张

1:新建一个Winform工程,会自带一个窗体,但是这个多半不是你想要的。

2:如果是要动态地生成一个窗体(已有一个窗体Form1的情况下),核心代码如下:

Form f = new Form();//实体化一个Form类

fShow();//d出f

或者

fShowDialog();//d出f,且将焦点锁定在f上,不关闭f,无法对Form1进行 *** 作

希望可以帮到你

要用C语言编写一个窗体应用程序需要调用系统或第三方提供的API函数,一般的步骤是:

定义窗口

注册窗口类

创建窗口

显示、更新窗口

进行消息循环,不断处理窗口消息

步骤:

1、注册窗口类;

2、创建窗体;

3、消息循环;

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

代码:

#include <windowsh>

#include<tcharh>

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

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

{

    WNDCLASS wc;

    wcstyle = CS_HREDRAW | CS_VREDRAW;

    wclpfnWndProc = WindowProc;

    wccbClsExtra = 0;

    wccbWndExtra = 0;

    wchInstance = hInstance;

    wchIcon = NULL;

    wchCursor = LoadCursor(NULL,IDC_ARROW);

    wchbrBackground = (HBRUSH)COLOR_WINDOW;//(HBRUSH)GetStockObject();

    wclpszMenuName = NULL;

    wclpszClassName = _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;

    }

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

具体如下 :

新建一个对话框资源,比如Dlg;在OnButton()响应函数下。

在窗口托一个button。

给button加一个单击响应函数  OnButton()。

Windows下选择原生态的SDK(看《windows程序设计》),或者开发效率更高的MFC(运行效率低一点、也比较庞杂),或者WTL。Duilib可以结合后两者使用。

跨平台的解决方案就多了。Qt自不用说。从linux上过来的GTK+、wx(这两者我未接触过)也可以。比较小众的还有FLTK、SDL(做多媒体程序、游戏比较适合)、SFML等等。

以上就是关于C#程序中如何新建窗体全部的内容,包括:C#程序中如何新建窗体、如何用C语言编写一个窗体应用程序、怎么用c语言写窗体程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10127067.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存