2007年12月
void CFfaaView::OnInitialUpdate()
{
ModifyStyleEx(WS_EX_CLIENTEDGE,WS_EX_STATICEDGE);
ModifyStyle(-1,WS_CHILD|WS_VISIBLE);
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
} 阅读全文>
发表于 @ 2007年12月28日 14:30:00|评论(loading...)|编辑
77. 想在程序一启动时就自动关闭窗口,不在任务栏里显示
用CTRL+W打开ClassWizard;
点击Class Info页,类名是工程名Dlg,
再在左下方的"Filter"中选择"Windows";
回到Message Maps页,就可以看到消息中有WM_WINDOWPOSCHANGING,阅读全文>
发表于 @ 2007年12月28日 14:29:00|评论(loading...)|编辑
71. 隐藏标题栏和菜单栏
隐藏标题栏 ModifyStyle(WS_CAPTION,0)
隐藏菜单栏 SetMenu(NULL)
72. InflateRect
InflateRect这个函数用于增大或减小一个矩形的大小.
如m_graphRect.InflateRect(-70, -30, -30, -50);
将矩形左边坐标加70,上面加30,右边减30,下面减50。
73. 怎么让无模式对话框显示在主窗口后面
要解决这个问题的关键在于CDialog的Create并不能建立一个无属主的窗口.必须用另外方式建窗口.
阅读全文>
发表于 @ 2007年12月28日 14:28:00|评论(loading...)|编辑
61. dlg 上建立View的方法:
OnInitDialog()
{
CDialog:;OnInitDialog();
CRect rectWindows;
GetWinodwRect(&rectWindows);
CRuntimeClass *pViewClass=RUNTIME_CLASS(CXXXView);
CCreateContext *pContext=new CCreateContext;
pContext->m_pCurrentDoc=NULL;
pContext->m_pCurrentFrame=NULL;
pContext->m_pLastView=NULL;
pContext->m_pNewDocTemplate=NULL;
pContext->m_pNewViewClass=pViewClass;阅读全文>
发表于 @ 2007年12月28日 14:27:00|评论(loading...)|编辑
51. 如何获得其他程序的图标,并显示在View中
[问题提出]
有的时候,如:类资源管理器会遇到获得程序图标并显示的操作,如何实现呢?
[解决方法]
SDK函数SHGetFileInfo来获得有关文件的很多信息:如大小图标,属性,类型等.
[程序实现]
建立名为My的SDI工程.在OnPaint()函数中加入:
void CMyView::OnPaint()
{阅读全文>
发表于 @ 2007年12月28日 14:26:00|评论(loading...)|编辑
41.如何禁止对话框关闭按钮和浮动工具条上的系统菜单
1、禁止对话框中的关闭按钮有二种方法。
第一种方法,用ModiftMenu()涵数来实现:
CMenu* pMenu = this->GetSystemMenu(FALSE);
pMenu->ModifyMenu(SC_CLOSE,MF_BYCOMMAND | MF_GRAYED );
第二种方法,用EnableMenuItem()涵数来实现:
CMenu* pMenu = this->GetSystemMenu(FALSE);
pMenu->EnableMenuItem( SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);阅读全文>
发表于 @ 2007年12月28日 14:25:00|评论(loading...)|编辑
31. 如何在编辑控件中以追加的方式添入字符?
[问题提出]
SetDlgItemText可以向Edit控件中输入字符,发送更新的消息也可是Edit控件显示与其关联的变量的值,但若是向已有的Edit字符后追加字符,该如何做?
[程序实现]
建立名为My的对话框工程,添加一个Edit和一个Button控件.Edit的ID=IDC_EDIT1,Button的ID=IDC_BUTTON1.建立和IDC_BUTTON1的响应函数:OnButton1()阅读全文>
发表于 @ 2007年12月28日 14:22:00|评论(loading...)|编辑
21. 介绍函数过程中一种任意键退出同时能处理消息的实现方法
1. 设置定时器,用于使::GetMessage(...)函数总能快速取到消息.
2. 在函数处理中加入:
函数每执行完一步后执行下面的代码.
if (::GetMessage(&msg, 0, 0, 0))
{
if (msg.message >= WM_KEYFIRST && msg.message <= WM_KEYLAST) return ;
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
else ::PostQuitMessage(0);阅读全文>
发表于 @ 2007年12月28日 14:21:00|评论(loading...)|编辑
1."属性页的添加:
创建对话框的类,该类要从CpropertyPage继承;然后在要添加该对话框为属性页的类(头文件)里创建CpropertySheet类的一个对象m_tabsheet和新创建的对话框类的对象m_skatch;最后,在.cpp文件里的OnInitDialog()之类的函数里实现如下代码:
m_tabsheet.Create(this, WS_CHILD | WS_VISIBLE, 0);
"//使选项卡的按钮在下面
"if(m_tabsheet.m_hWnd)
"m_tabsheet.ShowWindow(SW_MAXIMIZE);//显示选项卡
//加入标签,标签名由各个子对话框的标题栏决定
"m_tabsheet.AddPage(&m_skatch);
"//用Create来创建一个属性页
"m_tabsheet.Create(this, WS_CHILD | WS_VISIBLE, WS_EX_CONTROLPARENT);
"
RECT rect;
"m_tabsheet.GetWindowRect(&rect);
"int wi阅读全文>
发表于 @ 2007年12月28日 14:20:00|评论(loading...)|编辑