控件的id

adashm 2005-09-16 02:34:46
在工程里加入别的工程的对话框,新添的对话框A上有些控件和原有的对话框B上控件名字相同,对话框A加入后,与对话框里B名字相同的控件在其属性页里的ID名不见了,变成了原来工程里recouce.h里定义的数字值(在现在工程的recouce.h里这些值对应的是别的控件),讨厌的是程序编译可以通过,执行时报错,调试时发现错误语句如下:

HWND CDataExchange::PrepareCtrl(int nIDC)
{
ASSERT(nIDC != 0);
ASSERT(nIDC != -1); // not allowed
HWND hWndCtrl;
m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
if (hWndCtrl == NULL)
{
TRACE1("Error: no data exchange control with ID 0x%04X.\n", nIDC);
ASSERT(FALSE);----------------报错
AfxThrowNotSupportedException();
}
反正是控件id的问题,不知道我说清楚没?
现在我不知道怎么改,我想先将对话框A的控件名字改过来,因为A和B都是单独调用的,所以我想控件ID名相同没问题,可是改有的控件就说这个id已经存在了,要求换一个id,有的控件就可以改过来,明明都是已经存在的,不知是怎么回事,明白人告诉我吧,为什么?该怎么做?
...全文
159 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
adashm 2005-09-23
  • 打赏
  • 举报
回复
已经改了,好在就2个改不了,我已经改成别的名字了,不过没改响应函数名,就在那个cpp文件里把所有id替换了一下,但还是奇怪为啥有的能改有的不允许改,谢谢大家了
rageliu 2005-09-22
  • 打赏
  • 举报
回复
不同对话框上的控件可以共用一个ID,一个对话框上的控件不能共用。

顶顶顶
菜牛 2005-09-22
  • 打赏
  • 举报
回复
文本方式打开.rc文件修改。
alen_ghl 2005-09-22
  • 打赏
  • 举报
回复
如果就2个改不了,换别的,再改相应的响应函数名
adashm 2005-09-22
  • 打赏
  • 举报
回复
再顶顶
adashm 2005-09-16
  • 打赏
  • 举报
回复
现在我把A对话框里控件名字都改成原来的了,但有两个控件改不了,还是说这个id已经存在了,要求换一个id,现在程序能运行了,但没改id的两个控件无法工作了,对应的回调函数也不响应了
adashm 2005-09-16
  • 打赏
  • 举报
回复
to zxyjyzxyjy(星星),由于控件带有响应函数,改名后函数就不能用了,所以打算沿用原来的id,这些id在头文件里已经有定义了,是另一个对话框的
bluestar 2005-09-16
  • 打赏
  • 举报
回复
不同对话框上的控件可以共用一个ID,一个对话框上的控件不能共用。
zxyjyzxyjy 2005-09-16
  • 打赏
  • 举报
回复
自已根据以前的控件ID,重新在新工程中加入,或者把对话的资源里的相应定义拷贝过来,ID号相同可以用VC环境中的view菜单中的ID=Resource Symbols生成新资源ID号(这样不会与也有的ID重号)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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