`

Whatafuck先生(第一个MyWindow.c)

vc 
阅读更多
/* -------------------------------------------------------------------
MyWindows.c -- 基本窗口模型
《Windows 程序设计(SDK)》视频教程
--------------------------------------------------------------------*/

#include <windows.h>

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

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
	static TCHAR szAppName[] = TEXT("MyWindows");
	HWND hwnd;
	MSG msg;
	WNDCLASS wndclass;

	wndclass.style = CS_HREDRAW | CS_VREDRAW;
	wndclass.lpfnWndProc = WndProc;
	wndclass.cbClsExtra = 0;
	wndclass.cbWndExtra = 0;
	wndclass.hInstance = hInstance;
	wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
	wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
	wndclass.lpszMenuName = NULL;
	wndclass.lpszClassName = szAppName;

	if (!RegisterClass(&wndclass))
	{
		MessageBox(NULL, TEXT("这个程序需要在 Windows NT 才能执行!"), szAppName, MB_ICONERROR);
		return 0;
	}

	hwnd = CreateWindow(szAppName,
		TEXT("鱼C工作室"),
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		NULL,
		NULL,
		hInstance,
		NULL);

	ShowWindow(hwnd, iCmdShow);
	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)
{
	HDC hdc;
	PAINTSTRUCT ps;
	RECT rect;

	switch (message)
	{
	case WM_PAINT:
		hdc = BeginPaint(hwnd, &ps);
		GetClientRect(hwnd, &rect);
		DrawText(hdc, TEXT("大家好,这是我的第一个窗口程序!"), -1, &rect,
			DT_SINGLELINE | DT_CENTER | DT_VCENTER);
		EndPaint(hwnd, &ps);
		return 0;

	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}

	return DefWindowProc(hwnd, message, wParam, lParam);
}

 

分享到:
评论

相关推荐

    mywindow.cpp

    窗口消息分析

    opengl.zip_opengl java

    1. **Java2D**: Java2D是一个在Java平台上处理二维图形和图像的API。它提供了丰富的功能,如绘制直线、曲线、文本和图像,以及创建复杂的矢量图形。然而,Java2D主要针对低级图形操作,对于高级的3D图形渲染,我们...

    myWindow.exe

    python自制保洁的数据分析小工具,功能主要是从总表中查询当日表的信息是否存在,如果存在则将总表中对应的日期和保洁员信息填入当日表。

    WinUIEx:WinUI扩展

    一组扩展方法和类,用于填补WinUI 3中的一些空白,主要是围绕窗口。 要获取扩展方法,请首先using WinUIEx;添加using WinUIEx; 到代码的顶部。 最小化/最大化/还原和隐藏窗口。 myWindow . MinimizeWindow (); ...

    JS返回Promises对象插件Allora.zip

    使用示例:BasicOr simply:const myWindow = allora(window) myWindow.onload.then(() =&gt; alert&#40;'I am ready!'&#41;)Example in Node:const allora = require('allora') const myGlobal = allora...

    Qt将代码如何生成静态链接库

    1. **创建测试目录**:首先,你需要为你的库创建一个专门的目录,例如`lib`。 2. **编写源代码**:在这个目录下,创建必要的源代码文件,如`mywindow.h`和`mywindow.cpp`。`mywindow.cpp`应实现`mywindow.h`中声明...

    一个基于C#+ASP.NET实现的GridView翻页浏览控件打印输出程序例子

    在这个项目中,我们关注的是一个基于C#和ASP.NET实现的GridView控件的功能扩展,特别是针对翻页浏览和打印输出的实现。GridView是ASP.NET中常用的数据展示控件,它能够方便地展示数据源,如数据库查询结果,并提供了...

    一组扩展方法和类,以填补WinUI 3中的一些空白-.NET开发

    一组扩展方法和类,用于填补WinUI 3中的一些空白,主要是围绕窗口。 WinUIEx WinUI扩展一组扩展方法和类,用于填补WinUI 3中的一些空白,主要是围绕窗口。 要获取扩展方法,请首先使用WinUIEx添加; 到代码的顶部。 ...

    prototype.js 实例

    在JavaScript的世界里,Prototype.js是一个著名的库,它扩展了JavaScript的内置对象,为开发者提供了更加便利的编程体验。本实例将深入探讨如何利用Prototype.js来实现弹出窗口和移动窗口的功能,这对于创建交互性强...

    GUI开发示例代码---QTdesigner实现自定义槽函数

    3. 这将在`mywindow.py`文件中生成一个新的槽函数,但这个槽函数不会自动与信号连接。因此,在我们的主Python脚本中,我们需要手动完成这个连接: ```python from PyQt5.QtWidgets import QApplication from PyQt5 ...

    js 输出内容到新窗口具体实现代码

    [removed] myWindow=window.open(”,”,’width=200,height=100′) myWindow.[removed](“This is ‘myWindow'”) myWindow.focus() myWindow.opener.[removed](“This is the parent window”) [removed] &lt;...

    web打印实例

    在这个例子中,我们创建了一个按钮`#printButton`,当点击这个按钮时,会打开一个新的窗口,将`.printArea`类选择器内的内容写入新窗口,并应用`print.css`中的打印样式,然后执行打印操作。 其次,VB(Visual ...

    基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作

    在上述代码中,`QRCode`是qrcodejs组件提供的构造函数,接收两个参数:一个是用于显示二维码的DOM元素,另一个是需要编码成二维码的数据。例如,我们可以在网页中添加一个div元素来显示二维码: ```html ...

    在应用程序中播放音乐

    为了播放.wav文件,开发者可以使用Windows API中的waveOutWrite函数,这是一个核心音频服务,用于处理波形音频输出。 其次,.wma(Windows Media Audio)格式是一种由微软开发的有损压缩格式,相比.wav,它能以更小...

    利用python开发上位机,串口通信,源码

    利用python开发上位机,用于串口通信,将串口通信访问到的数据,并将数据以表格和波形的形式显示出来,注释清晰,对小白相当友好,文件夹中,main.py为主函数,MyWindow.py存放按键响应,串口通信等等各个控件的子...

    Qt编译控制之C++库.pdf

    假设我们有一个名为`libmywindow.a`的静态库,要将其集成到另一个项目`test`中,我们需要将`mywindow.h`和`libmywindow.a`拷贝到`test`目录下,然后在`test.pro`文件中添加库路径和库名: ```pro QT += core CONFIG...

    JavaScript弹出新窗口后向父窗口输出内容的方法

    新窗口是通过`window.open()`方法打开的,其中第一个参数是URL(此处为空,表示不加载任何网页),第二个参数是窗口名称(此处为空,表示让浏览器为新窗口生成一个名称),第三个参数是控制新窗口特性的字符串,这里...

    javajavajava

    在这个例子中,`FirstSwingDemo`创建了一个具有固定尺寸的窗口,并在窗口中添加了一个标签。`JFrame`是Swing中的顶级容器,用于创建窗口;`JLabel`则是显示文本的组件。`setDefaultCloseOperation(JFrame.EXIT_ON_...

    EXTJS窗口示例

    // 第一个参数为进度值,第二个为提示文字 // 动态更新 Ext.Function.defer(function() { progressBar.updateProgress(1, '完成!'); }, 3000); // 3秒后更新到100% ``` 3. 等待指示器(WaitIndicator): 在...

    extjs3 window窗口修改完退出提示是否保存

    本话题主要关注如何在EXTJS3的Window组件中实现一个功能:当用户在窗口内修改了数据后,关闭窗口时提示用户是否保存更改。未进行修改的情况下,窗口可以直接关闭,不显示任何提示。 首先,我们需要创建一个基本的...

Global site tag (gtag.js) - Google Analytics