请教一个问题:
我想实现在下拉菜单中点一个菜单项,弹出了响应的对话框,可是菜单完成初始化后,自动失去焦点,无法完成对对话框中的控件进一步操作
对话框调用。
void CDatabaseBackupClientDlg::OnMenuitemUser()
{
CUserAdmin cua; //CUserAdmin 对话框类
cua.DoModal();
}初始化函数,
主要完成向一个CListCtrl中插入一些数据,数据可以在控件中正确写入,循环可以正确完成,但不知道为什么执行完之后,就死了
BOOL CUserAdmin::OnInitDialog()
{
CDialog::OnInitDialog();
m_ListCtrl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
m_ListCtrl.InsertColumn( 0, _T("行号"), LVCFMT_LEFT, 150 );
m_ListCtrl.InsertColumn( 1, _T("编号"), LVCFMT_LEFT, 150 );
m_ListCtrl.InsertColumn( 2, _T("用户名"), LVCFMT_LEFT, 150 );
m_ListCtrl.InsertColumn( 3, _T("权限"), LVCFMT_LEFT, 150 );
CAccountFile caf;
if (caf.Open())
{
for (int i=0;i<caf.nFileRecCnt;i++)
{
CString test;
test.Format("RowCount is %d,Current Num is %d",caf.nFileRecCnt,i+1);
MessageBox(test);
caf.ReadRecord();
char sRowNum[20];
memset(sRowNum,0,20);
itoa(i,sRowNum,10);
m_ListCtrl.InsertItem( i, _T(sRowNum) );
char sID[20];
memset(sID,0,20);
itoa(caf.GetNo(),sID,10);
m_ListCtrl.SetItemText( i, 1, _T(sID) ); m_ListCtrl.SetItemText( i, 2, caf.GetAccountName() ); CString sPrivilege;
int nPrivilege=caf.GetLevel();
if (nPrivilege==1) sPrivilege="管理员";
else if(nPrivilege==0) sPrivilege="操作员";
m_ListCtrl.SetItemText( i, 3, _T(sPrivilege) );
}
caf.Close();
} return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
我想实现在下拉菜单中点一个菜单项,弹出了响应的对话框,可是菜单完成初始化后,自动失去焦点,无法完成对对话框中的控件进一步操作
对话框调用。
void CDatabaseBackupClientDlg::OnMenuitemUser()
{
CUserAdmin cua; //CUserAdmin 对话框类
cua.DoModal();
}初始化函数,
主要完成向一个CListCtrl中插入一些数据,数据可以在控件中正确写入,循环可以正确完成,但不知道为什么执行完之后,就死了
BOOL CUserAdmin::OnInitDialog()
{
CDialog::OnInitDialog();
m_ListCtrl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
m_ListCtrl.InsertColumn( 0, _T("行号"), LVCFMT_LEFT, 150 );
m_ListCtrl.InsertColumn( 1, _T("编号"), LVCFMT_LEFT, 150 );
m_ListCtrl.InsertColumn( 2, _T("用户名"), LVCFMT_LEFT, 150 );
m_ListCtrl.InsertColumn( 3, _T("权限"), LVCFMT_LEFT, 150 );
CAccountFile caf;
if (caf.Open())
{
for (int i=0;i<caf.nFileRecCnt;i++)
{
CString test;
test.Format("RowCount is %d,Current Num is %d",caf.nFileRecCnt,i+1);
MessageBox(test);
caf.ReadRecord();
char sRowNum[20];
memset(sRowNum,0,20);
itoa(i,sRowNum,10);
m_ListCtrl.InsertItem( i, _T(sRowNum) );
char sID[20];
memset(sID,0,20);
itoa(caf.GetNo(),sID,10);
m_ListCtrl.SetItemText( i, 1, _T(sID) ); m_ListCtrl.SetItemText( i, 2, caf.GetAccountName() ); CString sPrivilege;
int nPrivilege=caf.GetLevel();
if (nPrivilege==1) sPrivilege="管理员";
else if(nPrivilege==0) sPrivilege="操作员";
m_ListCtrl.SetItemText( i, 3, _T(sPrivilege) );
}
caf.Close();
} return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
解决方案 »
- 请问如何改变ListCtrl网格线粗细?
- 急!modbus串口通信
- 如何通过侦听的端口获取与这个端口绑定的IP?
- doc类的GetPathName()问题
- vc++ 简单问题
- 用CHtmlView做浏览器web编辑器中无法输入回车的问题?难道就没人做过浏览器,遇到这个问题?!!!
- 这样的程序有内存泄漏,你信吗?????来者有分!
- 请朋友们 推荐本"网络编程"的好书
- 帮忙写个函数?如何给2维指针付值??GetDataFromBuffer(BYTE* pBuffer, BYTE** ptr, int size)
- 不用access软件,用MFC可以生成一个access表吗?
- 急问:文件摘要中的“公司”信息如何修改——PIDSI中没有这一项
- NetworkStream.CanWrite方法返回true的时候是不是说明网络连接是OK的?
如果问题依旧,再看看是不是你的对话框被设了什么风格, 还是不是PopUp
最开始对话框风格设成child,忘了改回来了