C++ win32资源文件帮助
在网站上,在“编辑控制”标题下,有两行类似的代码C++ win32资源文件帮助,c++,winapi,resource-files,C++,Winapi,Resource Files,在网站上,在“编辑控制”标题下,有两行类似的代码 case WM_CREATE: hwndEdit = CreateWindow(TEXT("Edit"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 150, 20, hwnd, (HMENU) ID_EDIT, NULL, NULL); hwndButton = CreateWindow( T
case WM_CREATE:
hwndEdit = CreateWindow(TEXT("Edit"), NULL, WS_CHILD | WS_VISIBLE | WS_BORDER,
50, 50, 150, 20, hwnd, (HMENU) ID_EDIT,
NULL, NULL);
hwndButton = CreateWindow(
TEXT("button"), TEXT("Set Title"),
WS_VISIBLE | WS_CHILD,
50, 100, 80, 25,
hwnd, (HMENU) ID_BUTTON, NULL, NULL);
break;
我知道这种创建按钮的方法是在运行中完成的,但是我想知道如果不这样做,而不是使用资源文件,你会怎么做?。
在Forgers Win32中,它显示了如何使用资源文件创建菜单,以及如何描述对话框等,但我似乎无法使用资源文件在主(父)窗口上放置任何控件
例如,我有以下.rc文件
#include "resource.h"
ID_MENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "E&xit", ID_FILE_EXIT
END
POPUP "&About"
BEGIN
MENUITEM "&Information", ID_ABOUT_INFO
END
END
ID_ABOUT_INFO DIALOG DISCARDABLE 0,0,250,250
CAPTION "Information"
BEGIN
CTEXT "some text",ID_BLA,15,15,144,33
END
//this is all fine but how do I decribe the main window?, instead of the menu and dialog boxes?.
我如何描述主窗口而不是动态创建东西?。是否有某种关键字?您可以创建一个对话框作为主窗口
(文件->新项目-VisualC++/MFC -> MFC应用程序> OK >应用程序类型>基于对话框的.< /P> 生成的应用程序将为您创建主对话框,并在关闭时退出
这类野兽的一个简单示例(包括来源)如下:(这两个程序都是我写的,但都很简单,所以理解它们的功能没有什么困难。)福格已经将所有示例代码添加到一个zip文件中,您可以查看它 您仍然需要创建窗口,Forger也会这样做,但是他会在
WNDCLASSEX
结构中包含图标和菜单,该结构会传递给要创建的窗口。然后通过resource.h文件从资源文件(.rc文件)中收集
也有一个关于资源文件的部分,如您所见
资源可以由多种资源组成
元素范围,包括接口
向用户提供信息的元素
用户(例如位图、图标、,
或光标);自定义资源
包含应用程序所需的数据;
所使用的版本资源
设置API;以及菜单和对话框
资源
主窗口未被提及。
在API级别,考虑像
之类的函数。 没有比这更复杂的了 虽然作为主窗口的对话框有一些问题,特别是在MFC(它专门处理它)中Cheers&hth.,您可以将窗口设计为对话框,并将其放入资源文件中。然后使用FindResource和LoadResource函数获取指向DLGTEMPLATE的指针,其中包含所有对话框布局,您可以使用这些对话框布局调整自己的窗口大小,并将控件放置在对话框中定义的位置(虽然解释DLGTEMPLATE并不容易)。别忘了释放指向DLGTEMPLATE的指针。使用CreateWindow和各种预定义类。如果要创建按钮,请使用类“button”设置样式为WSKYORKWSWAULL,并将窗口过程设置为NULL。< /P>文件>新项目> VisualC++/MFC应用> MFC应用程序> OK->应用程序类型>基于对话框。右,因此这是如果SL3NT使用微软Visual Studio。您确定他是吗?因为我找不到任何东西,这意味着他确实可以使用MFC。这几天还有什么?我想“如果你用的是MFC”part很好地限定了第一个建议,如果他没有使用MFC,则第二个建议适用。无论如何,编辑后明确提到VS,以防万一。你可能是对的。我也想到了MFC和Visual Studio,但我不知道sil3nt是否使用它。@sil3nt,你能启发我/我们吗?因为我被卡住了,所以我没有阅读第二部分值得投票。:)我想资源文件除了对话框外不能包含windows。@利奥·戴维森,这非常有用,谢谢。快速提问,我的按钮和窗口的整体风格看起来真的很像Win98,我只是在运行你的程序时才看到区别。这和款式有关吗?。(例如,与此相反,它看起来有点像+1,尽管这会将其限制为一个对话框。它们的处理方式是否与
CreateWindow[Ex]
创建的窗口不同?@Default:如果您要在API级别执行此操作,那么请获取Petzold的“编程窗口”副本.Re不同的处理方式取决于您的意思。在API级别,对话框只是一种您可以实现的窗口(类),您可以覆盖任何您想要的默认功能。酷。谢谢您的提示。最新版本是什么?(books.google.com从1999年给了我一些东西)我想到的区别是,我认为他们需要用一种特殊的方式编写GetMessage()循环(包括)