如何用C语言做一个windows应用程序窗口界面

如何用C语言做一个windows应用程序窗口界面,第1张

可以使用CreateWindow函数。

CreateWindow,Windows API宏, 在WinUser.h中根据是否已定义Unicode被分别定义为CreateWindowW和CreateWindowA,后两者又被分别定义为对CreateWindowExW和CreateWindowExA函数的调用。

函数原型:

HWND CreateWindow(

LPCTSTR lpClassName,

LPCTSTR lpWindowName,

DWORD dwStyle,

int x,

int y,

int nWidth,

int nHeight,

HWND hWndParent,

HMENU hMenu,

HANDLE hlnstance,

LPVOID lpParam);

参数:

详情

lpClassName

指向一个空结束的字符串或整型数atom。如果该参数是一个整型量,它是由此前调用theGlobalAddAtom函数产生的全局量。这个小于0xC000的16位数必须是lpClassName参数字的低16位,该参数的高位必须是0。

如果lpClassName是一个字符串,它指定了窗口的类名。这个类名可以是任何用函数RegisterClass注册的类名,或是任何预定义的控制类名。请看说明部分的列表。

LPWindowName

指向一个指定窗口名的空结束的字符串指针。

如果窗口风格指定了标题条,由lpWindowName指向的窗口标题将显示在标题条上。当使用Createwindow函数来创建控制例如按钮,选择框和静态控制时,可使用lpWindowName来指定控制文本。

dwStyle

指定创建窗口的风格。该参数可以是下列窗口风格的组合再加上说明部分的控制风格。风格意义:

WS_BORDER:创建一个带边框的窗口。

WS_CAPTION:创建一个有标题框的窗口(包括WS_BORDER风格)。

WS_CHILD:创建一个子窗口。这个风格不能与WS_POPUP风格合用。

WS_CHILDWINDOW:与WS_CHILD相同。

WS_CLIPCHILDREN:当在父窗口内绘图时,排除子窗口区域。在创建父窗口时使用这个风格。

WS_CLIPSIBLINGS:排除子窗口之间的相对区域,也就是,当一个特定的窗口接收到WM_PAINT消息时,WS_CLIPSIBLINGS 风格将所有层叠窗口排除在绘图之外,只重绘指定的子窗口。如果未指定WS_CLIPSIBLINGS风格,并且子窗口是层叠的,则在重绘子窗口的客户区时,就会重绘邻近的子窗口。

WS_DISABLED:创建一个初始状态为禁止的子窗口。一个禁止状态的窗口不能接受来自用户的输入信息。

WS_DLGFRAME:创建一个带对话框边框风格的窗口。这种风格的窗口不能带标题条。

WS_GROUP:指定一组控制的第一个控制。这个控制组由第一个控制和随后定义的控制组成,自第二个控制开始每个控制,具有WS_GROUP风格,每个组的第一个控制带有WS_TABSTOP风格,从而使用户可以在组间移动。用户随后可以使用光标在组内的控制间改变键盘焦点。

WS_HSCROLL:创建一个有水平滚动条的窗口。

WS_ICONIC:创建一个初始状态为最小化状态的窗口。与WS_MINIMIZE风格相同。

WS_MAXIMIZE:创建一个初始状态为最大化状态的窗口。

WS_MAXIMIZEBOX:创建一个具有最大化按钮的窗口。该风格不能与WS_EX_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格。

WS_OVERLAPPED:产生一个层叠的窗口。一个层叠的窗口有一个标题条和一个边框。与WS_TILED风格相同。

WS_OVERLAPPEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX风格的层叠窗口,与WS_TILEDWINDOW风格相同。

WS_POPUP:创建一个d出式窗口。该风格不能与WS_CHILD风格同时使用。

WS_POPUPWINDOW:创建一个具有WS_BORDER,WS_POPUP,WS_SYSMENU风格的窗口,WS_CAPTION和WS_POPUPWINDOW必须同时设定才能使窗口某单可见。

WS_SIZEBOX:创建一个可调边框的窗口,与WS_THICKFRAME风格相同。

WS_SYSMENU:创建一个在标题条上带有窗口菜单的窗口,必须同时设定WS_CAPTION风格。

WS_TABSTOP:创建一个控制,这个控制在用户按下Tab键时可以获得键盘焦点。按下Tab键后使键盘焦点转移到下一具有WS_TABSTOP风格的控制。

WS_THICKFRAME:创建一个具有可调边框的窗口,与WS_SIZEBOX风格相同。

WS_TILED:产生一个层叠的窗口。一个层叠的窗口有一个标题和一个边框。与WS_OVERLAPPED风格相同。

WS_TILEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU, WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX风格的层叠窗口。与WS_OVERLAPPEDWINDOW风格相同。

WS_VISIBLE:创建一个初始状态为可见的窗口。

WS_VSCROLL:创建一个有垂直滚动条的窗口。

X

指定窗口的初始水平位置。对一个层叠或d出式窗口,X参数是屏幕坐标系的窗口的左上角的初始X坐标。对于子窗口,x是子窗口左上角相对父窗口客户区左上角的初始X坐标。如果该参数被设为CW_USEDEFAULT则系统为窗口选择缺省的左上角坐标并忽略Y参数。CW_USEDEFAULT只对层叠窗口有效,如果为d出式窗口或子窗口设定,则X和y参数被设为零。

Y

指定窗口的初始垂直位置。对一个层叠或d出式窗口,y参数是屏幕坐标系的窗口的左上角的初始y坐标。对于子窗口,y是子窗口左上角相对父窗口客户区左上角的初始y坐标。对于列表框,y是列表框客户区左上角相对父窗口客户区左上角的初始y坐标。如果层叠窗口是使用WS_VISIBLE风格位创建的并且X参数被设为CW_USEDEFAULT,则系统将忽略y参数。

nWidth

以设备单元指明窗口的宽度。对于层叠窗口,nWidth或是屏幕坐标的窗口宽度或是CW_USEDEFAULT。若nWidth是CW_USEDEFAULT,则系统为窗口选择一个缺省的高度和宽度:缺省宽度为从初始X坐标开始到屏幕的右边界,缺省高度为从初始Y坐标开始到目标区域的顶部。CW_USEDEFAULT只对层叠窗口有效;如果为d出式窗口和子窗口设定CW_USEDEFAULT标志则nWidth和nHeight被设为零。

nHeight

以设备单元指明窗口的高度。对于层叠窗口,nHeight是屏幕坐标的窗口宽度。若nWidth被设为CW_USEDEFAULT,则系统忽略nHeight参数。

hWndParent

指向被创建窗口的父窗口或所有者窗口的句柄。若要创建一个子窗口或一个被属窗口,需提供一个有效的窗口句柄。这个参数对d出式窗口是可选的。Windows NT 5.0;创建一个消息窗口,可以提供HWND_MESSAGE或提供一个己存在的消息窗口的句柄。

hMenu

菜单句柄,或依据窗口风格指明一个子窗口标识。对于层叠或d出式窗口,hMenu指定窗口使用的菜单:如果使用了菜单类,则hMenu可以为NULL。对于子窗口,hMenu指定了该子窗口标识(一个整型量),一个对话框使用这个整型值将事件通知父类。应用程序确定子窗口标识,这个值对于相同父窗口的所有子窗口必须是唯一的。

hlnstance

与窗口相关联的模块实例的句柄。

lpParam

指向一个值的指针,该值传递给窗口WM_CREATE消息。该值通过在IParam参数中的CREATESTRUCT结构传递。如果应用程序调用CreateWindow创建一个MDI客户窗口,则lpParam必须指向一个CLIENTCREATESTRUCT结构。

返回值:如果函数成功,返回值为新窗口的句柄:如果函数失败,返回值为NULL。若想获得更多错误信息,请调用GetLastError函数。

例程:

// Window.cpp : Defines the entry point for the application.

#include <windows.h>

LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM)

 

 

int APIENTRY WinMain(HINSTANCE hInstance,    //应用程序的实例句柄,

                     HINSTANCE hPrevInstance,

                     LPSTR     lpCmdLine,    //命令行

                     int       nCmdShow)    //显示方式

{

    MSG msg

    HWND hWnd

    char szTitle[]="系统信息"                                // The title bar text

    char szWindowClass[]="popMsg"                                // The title bar text

    WNDCLASSEX wcex={0}

    wcex.cbSize = sizeof(WNDCLASSEX)        //WNDCLASSEX结构体大小

    wcex.style            = CS_HREDRAW | CS_VREDRAW    //位置改变时重绘

    wcex.lpfnWndProc    = (WNDPROC)WndProc            //消息处理函数

    wcex.hInstance        = 0            //当前实例句柄

    wcex.hbrBackground    = (HBRUSH)COLOR_WINDOWFRAME    //背景色

    wcex.lpszClassName    = szWindowClass        //参窗口类名

    wcex.hIcon            =0        //图标

    wcex.hCursor        =LoadCursor(NULL, IDC_ARROW)        //光标

    wcex.lpszMenuName    =0        //菜单名称

    wcex.hIconSm        =0        //最小化图标

    RegisterClassEx(&wcex)            //注册窗口类

 

    hWnd = CreateWindow(szWindowClass, szTitle, WS_SYSMENU|WS_VISIBLE,    //创建窗口

      CW_USEDEFAULT,CW_USEDEFAULT, 400, 300, NULL, NULL, 0, NULL)

    if (!hWnd){

      return FALSE

    }

 

    ShowWindow(hWnd, nCmdShow)

    UpdateWindow(hWnd)

 

    while (GetMessage(&msg, NULL, 0, 0))     // 消息循环:

    {

        TranslateMessage(&msg)        //转化虚拟按键到字符消息

        DispatchMessage(&msg)        //分派消息调用回调函数

    }

    return msg.wParam

}

 

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

    PAINTSTRUCT ps

    HDC hdc

    RECT rect

    switch (message) 

    {   

        case WM_PAINT:        //重绘消息

            hdc = BeginPaint(hWnd, &ps)

            GetClientRect(hWnd, &rect)

            MoveToEx(hdc,10,10,0)

            SelectObject( hdc,::CreatePen(PS_SOLID,1,RGB(0xFF,0,0)))

            LineTo(hdc,100,200)

            //            DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER)

            EndPaint(hWnd, &ps)

            break

             

        case WM_CREATE:

             

            RegisterHotKey(hWnd ,1, 0 ,0x41 )

            break

        case WM_HOTKEY:

            MessageBox(0,0,0,0)

            break

        case WM_TIMER:

     

 

            break

        case WM_DESTROY:    //窗口销毁消息

            PostQuitMessage(0)

            break

        default:

            return DefWindowProc(hWnd, message, wParam, lParam)

   }

   return 0

}

Win7系统中的画图工具怎么用

画图调整图片大小

1、在电脑桌面依次单击「开始」按钮 →“所有程序” →“附件” →打开“画图”;还可以直接在“搜索程序和软件”中输入“画图”回车找到画图并进入软件。

2、来认识下画图界面吧!win7采用的是Ribbon 菜单。分别为“主页菜单”、“查看菜单”最顶层是“自定义快速访问栏”;文件菜单采用双列设计,很像Office 2007的界面,比XP的界面要丰富很多,界面各个位置的功能都有详细的文字标识;注意处理照片时在查看菜单中勾选“标尺”和“状态栏”就行,有些图片的部分需要用到标尺来进行测量可以勾选“网格线”,或者画流程图时可以用到

3、选取的图片的方法有三种:

1、电脑上的“prtsc sysrq”截图抓屏键直接“ctrl+v”复制粘贴进“画图”;

2、点击“主页菜单”,打开需要编辑的照片;

3、鼠标左键直接点击图片按住拖动到“画图”中。

4、在平时处理图片时有需要裁剪的地方,在画图中就可以做到,画图中有矩形裁剪和自由图形选择裁剪,通常用的最多的是矩形裁剪。选择你想要的图片区域裁剪后按下ctrl+c或者crtl+x剪切并选择新建文件然后crtl+v复制,注意在裁剪完后新建时原文件选择不保存,你对原图进行了编辑,选择保存就属于你编辑图片的状态了。

5、画图中图片大小的调整有“重新调整大小和扭曲”和“图片属性调整”,“重新调整大小和扭曲”内含重新调整大小的百分比和像素,主要是缩小调整的图片比例,还有倾斜角度的调整;“图片属性调整”是对图片原有像素不变进行裁剪调整,还有照片的尺寸和颜色选择。

6、可以使用“画图”在图片中添加其他形状。已有的形状除了传统的矩形、椭圆、三角形和箭头之外,还包括一些有趣的特殊形状,如“心形、闪电形”或“标注”等等。如果您希望自定义形状,可以使用“多边形”工具 ;win7画图“颜料盒”颜色非常丰富,在编辑图像时可以针对性的用画笔添加颜色。

7、画图中“工具”功能很强大,有“铅笔、颜色填充、文本编辑、橡皮擦、颜色选取器、放大器”,根据名字就能知道用处了,“文本编辑”时画图页面会有所变化,和Office 2007的文字编辑界面相近。

8、画图还可以完成图片的旋转、刷子、各种颜色的添加改变,完成图像编辑后对文件的保存格式比较多样,简单易用的画图还有好多功能等着你去发现,在使用时可以用到快捷键,都是有提示的。

Win8系统中的画图工具怎么使用

首先打开电脑,win8系统默认开始菜单界面。

在这个界面是找不到画图工具的,现在找一个地方,然后右键单击一下。

这时候在下方会出现一个选项名称为“所有应用”点击它。

4

进入所有应用后,在这里就可以找到画图工具了。

5

还有一种方法是利用搜索功能,无论你在什么界面,将鼠标移到屏幕右边,会出现提示栏。

Win8系统中的画图工具怎么 *** 作

工具:

win8

方法如下:

第一步:Metro 界面按键盘的“F3”热键,并键入“画图”回车搜索,然后点击选择“画图”。

第二步:使用组合热键“Win+R”调出运行窗口,输入“mspaint”,确定后打开“画图”程序。

第三步:在 Metro 界面,然后单击鼠标右键,点击屏幕下方出现的“所有程序”,在“所有程序”界面,找到 Windows 附件里的“画图”。如下图所示:

第四步:画图程序界面

Win7系统中画图工具输入文字总是倒的怎么办

原因一及解决方法

1

原因一:使用了带@的字体,如@华文中宋,自就会竖着躺着了!

2

解决办法:选择不带@的字体,文字自动翻转过来了!

END

原因二及解决方法

原因二:变现为字体选择正确,不是选择的带@的字体!但文字怎么输入都是纵向躺着的。

解决办法:将字体改为任意一种英文字体,但输入法仍然为中文输入法!输入几个汉字!文字已经正常排列了。

3

然后再将字体选择为中文的,比如华文中宋!OK,字的排列正常了!

win7系统怎么打开自带画图工具

1.首先,单击打开win7旗舰版电脑的开始菜单,之后在开始菜单中点击所有程序-附件,在附件中,可以看到win7旗舰版电脑自带的画图功能了,只需要左键单击这个画图就可以进入到这个功能中了。

2.可以通过运行窗口直接打开win7旗舰版电脑中的画图工具, *** 作方法如下:同时按下win7旗舰版电脑中的win+R快捷键打开电脑的运行窗口,然后在窗口中输入mspaint并单击回车,这样就可以打开画图工具了。

win7系统画图工具打不开怎么办

方法如下 有帮助 请采纳:

1、需要先点击一下你左下角的开始菜单,Win7系统会显示成windows图标的样式

2、在d出的子菜单中找到运行选项并点击一下

3、点击运行之后,在左下角会d出一个输入对话框,这是给你输入指令用的

4、在其中输入mspaint.exe,用来让系统执行命令

5、输入完毕之后,确定输入无误,点击下方的确定按钮

6、确定之后,就会d出一个软件的界面,这个就是我们要找到的画图软件了

7、用途和其他版本的是一样的,不要以为没找到就没有画图工具哦,接下来只要把保存的位置记好就可以了。

Win7系统中的命令行sxstrace.exe工具怎么用

该问题通常会在安装程序、游戏的时候出错,其提示为:

应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具。

2

开始→运行→输入:CMD 点击确定(或按回车键),打开命令提示符窗口。

3

如要知道怎么使用,可以输入命令加问号查询参数:sxstrace.exe/?

4

如果输入跟踪的命令:SxsTrace Trace -logfile:SxsTrace.etl 之后,d出这样的提示:SxsTrace 失败。错误的信息是:可能是 *** 作系统没有相应权限的缘故。

5

开始→所有程序→附件→右键命令提示符→以管理员身份运行。

6

再次在具备管理员权限的命令提示符窗口输入命令,就有启动的提示了:

SxsTrace Trace -logfile:SxsTrace.etl

这里有两个信息很重要,一是跟踪的讯息保存在SxsTrace.etl文件中了。

在开始菜单搜索框中输入:SxsTrace.etl文件名就能找到该文件,查看出错的原因等讯息。

还有一个重要讯息,就是按Enter(回车键)执行可以停止跟踪。如果不停止跟踪,即便是再开一个管理员权限的命令提示符窗口,输入跟踪命令,照样出错。

双击SxsTrace.etl文件需要有专门的程序与之关联之后,才能查看的。

此时还可以使用这个命令:

SxsTrace Parse -logfile:SxsTrace.etl -outfile:SxsTrace.txt

再搜索SxsTrace.txt 文件,就能在记事本中直接查看了。

如果跟踪的信息看不懂,可以尝试开启安装服务

开始→运行→输入:services.msc 点击确定(或按回车键)打开服务。

找到Windows Installer服务,右键启动即可。

如果启动菜单是灰色的(不可用)服务属性→启动类型→自动或者手动→应用→启动→确定。

还有一种情况是不同的 *** 作系统版本,使用错误版本的C++运行库程序,也会造成系统故障,出错提示,解决方案:找到和 *** 作系统匹配的版本安装即可。

当然,还可以使用专用工具修复系统文件(注意修复的文件数量,如果是0说明没有修复,或者不是这个原因引起的系统故障)。百度云网盘分享路径(如果有效,请不要吝惜点赞!让更多的人放心使用。如分享链接失效,请及时留评,以便修复)::pan.baidu./s/1pKWTyDP

win7系统中的截图工具怎么打不开 求支招

一、你可以在网上下载一个名为:“snippingtool.exe”的应用程序,再将它复制到你系统目录下,就OK了。

二、我帮你找了个网址如下,如你怕有毒,也可以自己随便在网上自己找自己认为没毒的,名为:“snippingtool.exe”的应用程序,再按第一步 *** 作即可。

怎么删除系统中的计算器和画图工具

附件里删除 或者控制面板安装删除程序里WINDOWS组件 里把附件里打钩

win7系统下的画图工具叫什么软件

1.点击开始菜单——所有程序——附件,找到画图,右键点击,选择打开文件文件夹位置;

2.打开文件夹C:\Windows\system32即为画图工具所在文件夹。

工具/材料:电脑。

第一步,打开电脑进入桌面,点击下方开始菜单。

第二步,进入菜单后找到Windows附件点击展开。

第三步,展开后即可看见画图工具点击进入即可。

第四步,点击进入后即可画图界面。

第五步,进入画图界面后即可使用工具进行创作。


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

原文地址:https://54852.com/yw/8094414.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存