第一个Window GUI程序

最简单的windows GUI程序,由WMain.cpp和WinProc.cpp组成,前者负责初始化窗口,负责处理消息。

File: WMain.cpp

#include <windows.h>

extern LRESULT CALLBACK WindowF(HWND, UINT, WPARAM, LPARAM);
char szWinName[] = "MyWin";
char szTitle[] = "My WINDOW";

int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, LPSTR lpszArgs, int nWinMode)
{
	// Define window class
	HWND hwnd;
	MSG msg;
	WNDCLASSEX wcl;

	wcl.cbClsExtra = 0;	//	extra bytes
	wcl.cbSize = sizeof(WNDCLASSEX);
	wcl.cbWndExtra = 0;
	wcl.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	wcl.hCursor = LoadCursor(NULL, IDC_ARROW);
	wcl.hIcon = LoadIcon(NULL, IDI_WINLOGO);
	wcl.hIconSm = NULL;
	wcl.hInstance = hThisInst;
	wcl.lpfnWndProc = WindowF;
	wcl.lpszClassName = szWinName;
	wcl.lpszMenuName = NULL;
	wcl.style = 0;

	// Registration of class
	if (!RegisterClassEx(&wcl))
		return 0;

	// Create Window
	hwnd = CreateWindow(
		szWinName,
		szTitle,
		WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL | WS_SYSMENU,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		HWND_DESKTOP,
		NULL,
		hThisInst,
		NULL
		);

	ShowWindow(hwnd, SW_RESTORE);
	UpdateWindow(hwnd);

	// Serve Messages
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return msg.wParam;
}

  

File: WinProc.cpp

#include <windows.h>

LRESULT CALLBACK WindowF(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
	case WM_DESTROY:
		// User Closed the window
		PostQuitMessage(0);
		break;
	default:
		break;
	}

	// Call the default window handler
	return DefWindowProc(hwnd, message, wParam, lParam);
}

  运行结果示例:

时间: 2024-10-23 20:12:43

第一个Window GUI程序的相关文章

使用python做一个爬虫GUI程序

整体思路和之前的一篇博客爬虫豆瓣美女一致,这次加入了图片分类,同时利用tkinter模块做成GUI程序 效果如下: 整体代码如下: 1 # -*- coding:utf-8 -*- 2 3 import requests 4 from requests.exceptions import RequestException 5 import tkinter as tk 6 from tkinter import ttk 7 from bs4 import BeautifulSoup 8 impor

[转载]使用PyQt来编写第一个Python GUI程序

转载自:http://python.jobbole.com/81276/ 英文版出处:http://pythonforengineers.com/your-first-gui-app-with-python-and-pyqt/ 软件版本: python-2.7.12.amd64 qt-opensource-windows-x86-mingw482-4.8.6-1 PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x64 简介 许多人在学习如何创建一个 GUI 应用的时候都感到十分的困

使用PyQt来编写第一个Python GUI程序

http://www.xiaoxiangzi.com/Programme/Python/1891.html 本文由 伯乐在线 - Lane 翻译,Daetalus 校稿.未经许可,禁止转载!英文出处:pythonforengineers.com.欢迎加入翻译小组. 简介 许多人在学习如何创建一个 GUI 应用的时候都感到十分的困难.其中最重要的原因是,他们不知道应该从何下手.大多数的教程都只有文字,但事实上仅仅依靠文字很难学会 GUI 编程,因为 GUI 应用大多数都是基于视觉上的. 我们将通过

使用PyQt5编写一个简单的GUI程序

我做Python窗口界面编程时,经常使用PyQt进行设计.这里简单叙述一下使用PyQt5制作一个简单的图形界面的流程 PyQt的简介以及开发环境的搭建在此不多赘述. 1.       打开Qt Designer,新建一个Dialog Without Buttons 2.       从左侧的Widget Box拖入一个Label,一个Text和一个Button 3.       双击控件可以改变其上的文本 4.       保存文件,命名为test.ui 5.       使用pyuic5将.u

设计一个基于GUI的扑克程序

在本课程教材扑克牌代码的基础上,设计一个基于GUI的扑克程序 a) 可以显示 52 张扑克牌,包括洗牌,发牌在内(2) b) 可以点击显示任何一张牌(1) c) 扑克翻面且突出显示(1) d) 扑克分组,例如 4 组,2 组.可以给每个组一定数量的牌(1) e) 按照一定的排序规则对分组牌进行排序(1) f) 发牌过程用动画显示(选做)(2)

VELT-0.1.5开发:在vs2013下调试Linux GUI程序

VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译,并根据编译时的错误信息正确定位到源码.目前的版本是0.1.4,仅支持vs2013.此插件可以在CSDN下载频道下载(http://download.csdn.net/detail/lights

数独GUI程序项目实现

数独GUI程序项目实现 导语:最近玩上了数独这个游戏,但是找到的几个PC端数独游戏都有点老了...我就想自己做一个数独小游戏,也是一个不错的选择. 前期我在网上简单地查看了一些数独游戏的界面,代码.好好地了解了一下现在数独游戏的大概的框架.当然,我自己写的小游戏,也许没那么好.但是我一定会一点点升级这个小游戏的. 目前,我做的游戏是V1.0版本的,只能说实现了这个游戏的基本功能:可以进行数独游戏.可以更换背景色以及一些其他的基本功能.接下来,在空余时间,我会进行对其中一Studying功能的实现

java的GUI程序的基本思路是以JFrame为基础

JFrame – java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化.最小化.关闭. JPanel – Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合,是一种轻量级容器,可以加入到JFrame窗体中.. JLabel – JLabel 对象可以显示文本.图像或同时显示二者.可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐.默认

日常开发技巧:x11-forward,使用远程机器的gui程序

背景 日常用过ssh登录服务器进行工作,尽管大部分时间,都只需要终端操作,编辑源码也是vim就够用了. 但有时候,还是需要使用gui程序的,比如打开一份pdf,word,ppt,excel等. 碰到这种情况,一种解决方式是,通过scp命令或别的方式,将所需文件拷贝到本地机器,再在本地使用对应的程序打开. 这里介绍另一种方式,使用x11-forward. x11-forward简介 X11是X Window System主版本11的缩写,它不光是一个基本的GUI软件,X11也被定义为一个网络协议,