• 七月工作笔记 7.7




    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





























  • 相关阅读:
    XUartPs_SetFifoThreshold
    函数指针 与 指针函数 的 区别
    zynq SPI 参数配置
    20199118《网络攻防实践》第三周作业
    maven项目将第三方jar包打入自己的jar中
    springboot项目简单的实现操作多数据库源
    WebSocket简单的应用
    怎么使用bat脚本更改本地受保护的hosts文件
    Spring Boot配置ssl证书启用HTTPS协议
    控制animation暂停:animation-play-state
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7079101.html
Copyright © 2020-2023  润新知