gpt4 book ai didi

c++ - 无法添加控制变量

转载 作者:太空宇宙 更新时间:2023-11-04 03:00:49 25 4
gpt4 key购买 nike

我有一个应用程序,我想添加一个图片控件并在其中显示一些位图图像。但是,我不能给图片控件添加一个控制变量。

一开始,我什至无法添加变量。因为我的头文件中没有 enum {IDD = ID_OF_MY_DIALOG;} 行。我修好了它。但是,现在,我无法添加控制变量。当我右键单击图片控件并单击“添加变量”行时,无法选择“控制变量”复选框。

如何向我的项目添加控制变量,如何动态显示位图,或者我的错误是什么?

测试了一些MFC应用,看到了控制变量部分。所以,我的项目中肯定缺少某些东西——我想。

这是我的截图:

Add Variable Screen in my ATL project

Add Variable Screen in a random MFC project

非常感谢。

最佳答案

假设您将 STATIC 控件添加到对话框模板中。就在模板编辑器中,您可以在控件属性中分配一个标识符,例如IDC_PICTURE。从那里 - 控件已经在运行时为您创建。在代码中,您将添加 CWindow 变量,并在您的 OnInitDialog 处理程序中(我假设您已经拥有它 - AFAIR 它是默认创建的并且存在各种示例)您将添加成员变量初始化,以便您的代码可用于消息处理等进一步操作。

class CMainDialog :
public CDialogImpl<CMainDialog>
{
// ...
private:
CWindow m_PictureStatic;
HBITMAP m_hPictureBitmap;

// Window Message Handlers
LRESULT OnInitDialog(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
m_PictureStatic = GetDlgItem(IDC_PICTURE);
m_hPictureBitmap = LoadBitmap(_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDB_PICTURE));
ATLASSERT(m_hPictureBitmap);
m_PictureStatic.SendMessage(STM_SETIMAGE, IMAGE_BITMAP, (LPARAM) m_hPictureBitmap);
// ...
}
LRESULT OnDestroy(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
ATLVERIFY(DeleteObject(m_hPictureBitmap));
return 0;
}

图片本身是(在此代码段中,可能还有其他选项)标识符为 IDB_PICTURE 的位图资源。代码从资源加载位图并将其传递给控件。

enter image description here

Source Code + Source Code before adding Picture Static .

关于c++ - 无法添加控制变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12348565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com