2010-04-19 82 views
8

我想知道用Win32 API创建Gui的正确方法。Gui的Win32 API

现在我刚才在WM_CREATE事件中调用CreateWindowEx,但我认为这不是正确的做法。

举一个例子,添加100x20 EditField并从中获取文本的正确方法是什么?你会在WM_Create上创建它,然后使用GetText()

感谢

+1

我在http://www.aleax.it/TutWin32/上有一个教程,但是,唉,它只是意大利语 - 不能翻译46个英文章节并将结果压缩成一个SO回答;-)。如果你使用谷歌浏览器,你可以尝试自动英文翻译,只是为了好玩 - 编辑控件在第22章和以下;-)。 – 2010-04-19 01:14:33

+2

http://stackoverflow.com/questions/342729/learning-the-win32-api – 2010-04-19 01:15:09

+0

可能的重复投票结束为“请求教程”。 – 2015-12-01 23:47:41

回答

1

如果要创建与Windows一个简单的GUI api,然后使用资源编辑器创建对话框资源,然后用DialogBoxParam的简单调用替换应用程序窗口类注册和窗口创建代码。 DialogBoxParam将读取对话资源并创建对话框,自动将所有内容都缩放到用户字体设置,处理消息循环以及执行其他操作,如自动支持控件之间的Tab键。

+0

有一点 - 您必须自己更新控件的有效主题字体,否则您将从.res对话框描述中获取默认字体 – 2010-04-28 22:44:12

1

你不需要在WM_CREATE事件中做,但你可以。我通常在创建主窗口的同一范围内创建任何子窗口。例如:

HWND mainWindow = CreateWindowEx(...); 
HWND editField = CreateWindowEx(...); // use mainWindow for the hWndParent param 
             // the hMenu parameter sets child window id