| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1398 人关注过本帖
标题:[原创]关于登陆对话框的问题
只看楼主 加入收藏
tjwcdm
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-5-31
收藏
 问题点数:0 回复次数:6 
[原创]关于登陆对话框的问题

我有个问题,我编写好了一个基于对话框的应用程序,可是我现在要为这个程序弄一个登陆对话框,在输入密码和帐号正确的时候则开始运行应用程序,我的要求不高,不需要注册用户和,帐号密码可以在程序中固定死,请问我该怎么实现,哪位高人指点一下,具体点好吗?!!!或者介绍点资料给我看看!写写了

搜索更多相关主题的帖子: 对话框 帐号 登陆 应用程序 密码 
2006-05-31 02:43
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
收藏
得分:0 
1。在资源栏里创建一个登陆对话框资源,填加相应的控件,并且命名变量名为:m_sUser,m_sPwd;
2。右击所创建的对话框,选择wizard的,系统提示创建一个新的对话框类,那么就创建。
3。代码如下:

CPassWordDlg m_Dlg; //定义一个登陆对话框类的变量
if(m_Dlg.DoModal() == IDOK)
{
int user,pass;
user = strcmp(m_sUser,"test");//比较用户名和密码
pass = strcmp(m_sPwd,"123");
if((user==0)&&(pass==0))
{
MessageBox("用户名和密码错误,确定后程序退出。","错误提示",MB_OK|MB_ICONERROR);
return FALSE;
}
}
else
return FALSE;

把上面代码放在OnInitDialog()里面。

我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-05-31 08:53
cathypu0725
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-26
收藏
得分:0 

楼上的代码不可以放在OnInitDialog,在OnInitDialog中return FALSE,原来的对话框程序也会显示出来的.
应该放在InitInstance中,显示原来对话框应用之前.

2006-05-31 09:27
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
收藏
得分:0 

对,楼上说的对,我搞错了。


我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-05-31 11:21
lundon
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-5-7
收藏
得分:0 
学习学习

还想好好学习
2006-05-31 18:04
vandy
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-5-15
收藏
得分:0 
我怎么没有弄出来呢???
代码具体加到哪呢??
2006-06-01 08:35
v6543210
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-6-3
收藏
得分:0 

1.如何获取应用程序的 实例句柄?

应用程序的实例句柄保存在CWinApp m_hInstance 中,可以这么调用AfxGetInstancdHandle获得句柄.Example: HANDLE hInstance=AfxGetInstanceHandle()


2.如何通过代码获得应用程序主窗口的 指针?

主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.


3.如何在程序中获得其他程序的 图标?

两种方法:(1) SDK函数 SHGetFileInfo 或使用 ExtractIcon获得图标资源的 handle,(2) SDK函数 SHGetFileInfo 获得有关文件的很多信息,如大小图标,属性, 类型等.Example(1):在程序窗口左上角显示 NotePad图标.void CSampleView:OnDraw(CDC * pDC){if( :: SHGetFileInfo(_T("c:\\pwin95\\notepad.exe"),0,&stFileInfo,sizeof(stFileInfo),SHGFI_ICON)){pDC ->DrawIcon(10,10,stFileInfo.hIcon)}}Example(2):同样功能,Use ExtractIcon Functionvoid CSampleView:: OnDraw(CDC *pDC){HICON hIcon=:: ExtractIcon(AfxGetInstanceHandle(),_T("NotePad.exe"),0)if (hIcon &&hIcon!=(HICON)-1)pDC->DrawIcon(10,10,hIcon)}说明: 获得notepad.exe的路径正规上来说用GetWindowsDirectory函数得到, 如果是调用 win95下的画笔,应该用访问注册表的方法获得其路径,要作成一个比较考究的程序,考虑应该全面点.


4.如何编程结束应用程序?

这是个很简单又是编程中经常要遇到的问题.向窗口发送 WM_CLOSE消息,调用 CWnd::OnClose成员函数.允许对用户提示是否保存修改过的数据.Example: AfxGetMainWindow()->SendMessage(WM_CLOSE)

还可以创建一个自定义的函数 Terminate Windowvoid Terminate Window(LPCSTR pCaption){CWnd *pWnd=Cwnd::FindWindow(NULL,pCaption)

if (pWnd)

pWnd ->SendMessage(WM_CLOSE)}

说明: FindWindow函数不是提倡的做法,因为它无法处理标题栏自动改变,比如我们要检测 Notepad是不是已运行而事先不知道Notepad的标题栏,这时FindWindow就无能为力了,可以通过枚举 windows任务列表的办法来实现。在机械出版社"Windows 95 API开发人员指南"一书有比较详细的介绍,这里就不再多说乐。

2006-06-03 14:57
快速回复:[原创]关于登陆对话框的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030716 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved