MFC扩展DLL的问题

吹雪 2009-08-31 10:13:49
在一个MFC扩展DLL中导出一个三态选择树类CTreeCtrlEx,派生于CTreeCtrl。

我在CTreeCtrlEx的PreSubClass函数中写了如下代码:
void CCheckedTreeCtrl::PreSubclassWindow() 
{
CTreeCtrl::PreSubclassWindow();

HINSTANCE hInstOld = AfxGetResourceHandle();
AfxSetResourceHandle(xhlctrlsDLL.hResource);
m_imgState.Create(IDB_BITMAP_CHECKBOX,13, 1, RGB(255,255,255));
m_imgList.Create(IDB_BITMAP_FOLDER,16, 1, RGB(255,255,255));
AfxSetResourceHandle(hInstOld); // restore the old resource chain
SetImageList(&m_imgState,TVSIL_STATE);
SetImageList(&m_imgList,TVSIL_NORMAL);
}


但是这样总是使得树的state icon和item icon显示不正确。
如果改成以下这样就可以:
void CCheckedTreeCtrl::PreSubclassWindow() 
{
CTreeCtrl::PreSubclassWindow();

HINSTANCE hInstOld = AfxGetResourceHandle();
AfxSetResourceHandle(xhlctrlsDLL.hResource);
m_imgState.Create(IDB_BITMAP_CHECKBOX,13, 1, RGB(255,255,255));
m_imgList.Create(IDB_BITMAP_FOLDER,16, 1, RGB(255,255,255));
AfxSetResourceHandle(hInstOld); // restore the old resource chain
SetImageList(&m_imgState,TVSIL_STATE);
SetImageList(&m_imgList,TVSIL_NORMAL);
SetImageList(&m_imgState,TVSIL_STATE); // 不调两遍就没有效果,不知道是为什么。
SetImageList(&m_imgList,TVSIL_NORMAL);
}


不知道是什么原因?
xhlctrlsDLL是正确的。在DLLMAIN中有如下语句:
if (!AfxInitExtensionModule(xhlctrlsDLL, hInstance))
return 0;


DLL与EXE均动态使用MFC,均为release编译,都对_UNICODE,UNICODE进行了预定义再编译的。
...全文
114 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
吹雪 2009-09-01
  • 打赏
  • 举报
回复
一语惊醒梦中人啊。

佩服佩服!
feilinhe 2009-09-01
  • 打赏
  • 举报
回复
把那几行代码调换位置行不?
oyljerry 2009-08-31
  • 打赏
  • 举报
回复
^_^,难道bug?
源码链接: https://pan.quark.cn/s/9f500ac403c2 摄像头配置是嵌入式系统构建中的一个关键步骤,它涉及到硬件与软件的紧密协作。图像信号处理器(ISP)作为图像信号处理的核心单元,在摄像头配置过程中扮演着至关重要的角色。在硬件层面,它涵盖了摄像头与ISP之间的连接以及信号传输的细节;在软件层面,主要依托V4L2框架进行视频流的采集和处理。接下来将具体说明文档中涉及的硬件机制、软件机制、信号配置及V4L2等领域的摄像头配置实践经验。 ### 硬件机制与连接 文档首先阐述了硬件线路中中央处理器与摄像头之间的连接方式。在此,相机串行接口(CSI)模块是摄像头数据传输的核心部分,它负责与外部CMOS图像感应元件进行交互。CSI接口包含以下几个关键信号线: 1. **CSI_VSYNC (垂直同步信号)**:用于标示一帧图像的起始点。该信号传输方向为从图像感应元件(sensor)至应用处理器(AP)。 2. **CSI_HSYNC (水平同步信号)**:用于提供行同步信号,并用于识别消隐信号。同样,信号流向为sensor至AP。 3. **CSI_D[7:0]**:8位摄像头数据总线,用于传输各种图像数据,包括YUV、YCC、RGB或Bayer格式。数据流向为sensor至AP。 4. **CSI_MCLK (传感器主时钟信号)**:由传感器输出主时钟信号,为外部摄像头提供时钟基准。信号流向为AP至sensor。 5. **CSI_PIXCLK (像素时钟信号)**:由摄像头输出,通常与MCLK主时钟信号频率相同。信号流向为sensor至AP。 正确设置这些连接,确保信号同步传输,是硬件配置的基础。 ### 软件机制与驱动程序 摄像头驱动...

15,465

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧