您的位置:首页

七月工作笔记 7.7 - 7.11

2017-06-26 09:34 260 查看
1. vs第二次单步调试崩溃。。

一開始不知道为什么,重装无数次。



后来发现是VAssistX 插件的问题。

。。

将下载下来的插件包中的VA_X.dll 复制到VAssistX 的安装路径下就可以。

2. 发现了一个非常棒的vs配色方案的站点 http://studiostyl.es/
3. sendmessage和postmessage的差别
PostMessage仅仅负责将消息放到消息队列中,不确定何时及是否处理
SendMessage要等到受到消息处理的返回码(DWord类型)后才继续
PostMessage运行后立即返回
SendMessage必须等到消息被处理后才会返回。

4. MakeLower()函数
像这样改变大写和小写的函数,除非一下子全然改变。否则现用现改,不要过早调用此类函数。

5. 消息中想要发送字符串,用以下方式
发送端:
CString relatedID = _T("123");
GetParent()->SendMessage(WM_MYHIDE,WPARAM(TRUE),(LPARAM)relatedID.GetBuffer(20));
reatedID.releaseBuffer();
在消息响应端:
void CDrawProgramDoc::SetYcProperty(WPARAM wParam)
{
CString str((TCHAR*)lParam);
}

6. PostMessage和::PostMessage的差别

PostMessage的定义是这种:
_AFXWIN_INLINE BOOL CWnd::PostMessage(UINT message, WPARAM wParam, LPARAM lParam)
{ ASSERT(::IsWindow(m_hWnd)); return ::PostMessage(m_hWnd, message, wParam, lParam); }

所以在Release下。它和::PostMessage全然等价。所以能用PostMessage就不要用::PostMessage了,由于前者少一个參数,输入快。曾经我也有疑问,以为用PostMessage会损失效率。结果未必,MFC的东西并不总是慢。有些时候他们与API等价的快。

PostMessage:不须要指定接收消息的窗体,可是消息仅仅能发往本窗体
::PostMessage:须要指定接收消息的窗体,可是消息能够发往随意窗体

7. 模态对话框与非模态对话框的差别
一般来说,Windows应用程序中。对话框分为模态对话框和非模态对话框两种。二者的差别在于当对话框打开时,是否同意用户进行其它对象的操作。
模态对话框垄断了用户的输入。

当一个模态对话框打开时,用户仅仅能与该对话框进行交互,而其它用户界面对象收不到输入信息。模态对话框下。用户须要操作目标对话框就必须先操作模态对话框。

用户对模态对话框的处理如图所看到的。
模态对话框的处理过程
模态对话框的处理过程
非模态对话框(Nonmodal Dialogue Box。又叫做无模式对话框),与模态对话框不同。当用户打开非模态对话框时。依旧能够操作其它窗体。
建立模块对话框通常调用DoModal()这种方法,而非模态对话框则调用Create()和ShowWindow()这两个函数。

8.遇到一个奇妙错误。

。winocc.cpp 329行
错误本来是这种,有这么一段代码:
//消息函数
LRESULT CPESetToolDlg::OnSocketGetInstallList(WPARAM wParam, LPARAM lParam)
{
//发消息给进度条,让他一下子跑完
PostMessage(WM_PROGRESS_STEP_SEND, PROGESS_RANGE_NUM / 1, 0);
//定义一个dlg
CApkInstallDlg apkID;
apkID.SetApkList((CSTRING_LIST*)wParam);
//显示dlg
return apkID.DoModal();
}
单步调试的时候发现。仅仅有在DoModal() 的时候才崩溃,接着调试发现不正确,是在消息函数中崩溃的。



后来发现,假设在PostMessage以下让他弹一个框就没问题。。只是还是不知道怎么解决这个问题,后来发现。是由于消息这个东西。在队列里面,运行顺序非常乱,不能用post,所以就改成了send,採用堵塞的方式,。。结果还是不行,后来发现,原来的send之后进入的消息函数里面还有个post。。我想了想。。仅仅好又重写了一个函数。。- -#。。

我发现如今我干的最多的事就是重写函数了。

另外有篇文章写得不错。能够看看:http://hi.baidu.com/vc_net/item/82e10f0c4a1e776dd55a113f
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: