高手请进,一个菜鸟问题在线等待解答
下面是我的程序:
void SZhiDialog::OnSetfocusCombo1()
{
// TODO: Add your control notification handler code here
CComboBox my_ComboBox;
HKEY hkey;
long ret0;
LPCSTR data_Get="SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Adapters";
ret0=RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Get,0,KEY_READ,&hkey);
if (ret0!=ERROR_SUCCESS)
{
MessageBox("Error!");
return;
}
TCHAR szBuffer[256];
DWORD dwSize=256;
ZeroMemory(szBuffer,256);
DWORD dIndex;
dIndex=0L;
while(RegEnumValue(hkey,dIndex,szBuffer,&dwSize,NULL,NULL,NULL,NULL)==ERROR_SUCCESS)
{
//MessageBox(szBuffer,"");
my_ComboBox.AddString(szBuffer);
dIndex++;
ZeroMemory(szBuffer,256); //注意这两行
dwSize=256; //
}
return;
}
执行的时候出现 error提示,就是说RegOpenKeyEx函数没有返回正确的值,为什么?
问题点数:20、回复次数:8Top
1 楼Bottol(亲爱的:)回复于 2002-12-12 16:42:35 得分 10
这段代码没有问题,如果失败的话,请先确认你的注册表里确实有以下项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\AdaptersTop
2 楼ruihuahan(飞不起来的笨鸟)回复于 2002-12-12 16:47:10 得分 0
upTop
3 楼ksyou(过河卒:不能回头怎么办?)回复于 2002-12-12 16:59:02 得分 0
不好意思,这个问题解决了,但我怎么样才能把RegEnumValue查到的值在combo box控件中显示出来呢?上面我用my_ComboBox.AddString(szBuffer);显示不出来。呵呵,我刚学MFC,还很菜,请多指点Top
4 楼ksyou(过河卒:不能回头怎么办?)回复于 2002-12-13 08:50:41 得分 0
upTop
5 楼guizi6()回复于 2002-12-13 09:10:03 得分 0
你的combo box应该下拉后才能看到,在编辑对话框时,点击combo box的下拉按钮,在把宽度加宽.Top
6 楼Bottol(亲爱的:)回复于 2002-12-13 09:58:42 得分 10
呵呵,还真没注意你的ComboBox,首先你要确认这个ComboBox已经可以在界面上显示出来,如果你没有在资源编辑器里面把他加到某个窗体(form)上的话,就用Create函数先把他创建出来,创建的时候,选择你的ComboBox所附着的父窗口。
你的CComboBox my_ComboBox;如果只是在这个函数里这样定义,VC怎么知道这个my_ComboBox该放在哪里呢?当然也就显示不出来。
Top
7 楼ksyou(过河卒:不能回头怎么办?)回复于 2002-12-13 10:26:12 得分 0
我把ComboBox防在一个对话框上的,在对话框类中定义了成员变量
CComboBox m_combox;
当我将上面的程序的定义去掉后,用m_combox.addstring(szBuffer)是出现异常错误。
我的void SZhiDialog::OnSetfocusCombo1() 函数选择的是设置焦点的消息。
请高手帮帮忙Top
8 楼ksyou(过河卒:不能回头怎么办?)回复于 2002-12-16 08:25:06 得分 0
upTop




