【问题标题】:How to place a control (say, a button) in the main window mannually using .rc resource script如何使用 .rc 资源脚本在主窗口中手动放置控件(例如按钮)
【发布时间】:2017-04-08 01:33:17
【问题描述】:

首先,我尝试使用纯 C++ 文本创建 GUI。由于我的应用程序不需要复杂的 GUI,我想避免使用 Visual Studio。

所以我的 .rc 文件中有以下代码:

#include "resource.h"

IDR_MYMENU MENU
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "E&xit", ID_FILE_EXIT
    END
END

EDITTEXT IDC_BY,25,7,25,25,ES_NUMBER

IDI_MYICON ICON "one.ico"

编译器在EDITTEXT 行显示语法错误。我的想法是这个EDITTEXT 应该放在某个东西下,比如菜单,而不是直接放在 .rc 文件中。我在某处读过说将控件放置在窗口中的唯一方法是将控件放置在对话框中,然后将其放置在窗口中。但是,根据我的研究,我认为对话框是一个“新的弹出窗口”,而不是原始窗口的一部分。我希望我已经解释清楚了。提前感谢您的帮助。

【问题讨论】:

  • 只能使用资源文件在对话框内创建控件。如果要向非对话框窗口添加控件,则必须在运行时创建它。
  • 资源文件定义可执行文件中的 Windows 资源。资源是诸如图标、光标、字符串、菜单、位图和对话框之类的东西。编辑文本框不是顶级资源。它属于 DIALOG 资源。

标签: c++ windows visual-studio user-interface winapi


【解决方案1】:

EDITTEXT 语句应出现在对话框资源块内,详情请参阅Resource file reference documentation。您可能希望使用默认 win32 应用程序中的对话框作为编写您自己的资源文件的起点。

IDD_ABOUTBOX DIALOGEX 0, 0, 170, 62
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About Win32Project2"
FONT 8, "MS Shell Dlg"
BEGIN
    ICON            IDR_MAINFRAME,IDC_STATIC,14,14,21,20
    LTEXT           "Win32Project2, Version 1.0",IDC_STATIC,42,14,114,8,SS_NOPREFIX
    LTEXT           "Copyright (C) 2017",IDC_STATIC,42,26,114,8
    DEFPUSHBUTTON   "OK",IDOK,113,41,50,14,WS_GROUP
END

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-25
    • 2011-09-04
    • 2018-04-02
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    相关资源
    最近更新 更多