如何在对话框中弹出SDI框架并操作它,最好能给个实例,谢谢
解决方案 »
- vc6.0 一个类的成员变量回调不显示
- CTreeCtrl的问题
- skin文件是怎么制作的
- 为什么我学习VC的第一个程序就出现错误????
- 我对表操作时,表中的数据没有改变,恳请高手指教!!
- 咦怪了,我设置了加速键,怎么不起作用呢???辟如,建一个菜单项abc(ID:ID_ABC),快捷键为Ctrl+N,在加速键表里设好ID和Ctrl+N,后,却不
- ODBC的问题?
- LPCSTR中LPC是什么的缩写?
- 解释性语言(脚本语言,标识性语言)可以很多,而且程序员可以自定义语言格式和自己写解析器。但编译性语言过多就是软件的祸患!
- 很菜的问题!怎样在list control中显示数据记录?????急
- 一个小问题
- 怎样编程关闭某个IE窗口?
这是还需要对话框不?
(如果我说骗了的,不要m我)。
比如在进入系统前出现一个密码验证对话框,验证成功就进入系统显示SDI框
架,否则返回错误信息!
具体操作如下:
1.新建一个对话框类CDlg_denglu,该类有一个成员变量m_flag(BOOL类型,初始化
为FALSE) 对话框有“登录(IDOK)”和“退出(IDCANCEL)”两个按钮,有两个CEdit
控件(绑定变量分别为 m_name和 m_password,一个为用户名,一个为密码)。在
Dlg_denglu.cpp里设置按钮响应函数
void CDlg_before::OnCancel()
{
CDialog::OnCancel();
} void CDlg_before::OnOK()
{
UpdateData(TRUE);
if(m_name=="你的用户名"&&m_password=="你的密码")
{
m_flag=TRUE;
CDialog::OnOK();
}
else
AfxMessageBox("非安全用户不能使用该系统!");
}
2.在App文件里相应的位置增加相应的代码
#include "Dlg_denglu.h"
BOOL CStep_studyApp::InitInstance()
{
..........................
..........................
.......................... SetRegistryKey(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(); // Load standard INI file options (including MRU)
CDlg_before bDlg;
bDlg.DoModal();
if(!bDlg.m_flag)
return FALSE;
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CStep_studyDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CStep_studyView));
........................
........................
........................
}
windows大到桌面,小到控件,全部是窗口。
如果你想要在点击一个按钮的时候,弹出出另一个窗口处理。
只需要注册一个窗口类。参见RegisterClass或RegisterClassEx函数
用这个窗口类创建一个窗口,参见CreateWindow或CreateWindowEx函数
显示这个窗口,参见ShowWindow函数
更新这个窗口,参见UpdateWindow函数如果你使用MFC可以更简单,参考
AfxRegisterWndClass
CWnd::Create和CWnd::CreateEx
等函数如果需要在任务栏上显示任务,则父窗口应该为NULL或GetDesktopWindow()
如果为NULL,窗口为正常的普通窗口。
GetDesktopWindow()则窗口不接受焦点。