• 版本更改



    2 //ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW,1);//任务栏隐藏
    使用了任务栏隐藏之后, 最小化,还原按钮就没有了。

    3 处理主界面的最小化按钮和关闭按钮,是将主界面隐藏。

    void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam)
    {
    //处理最小化按钮和关闭按钮
    if(nID == SC_CLOSE || nID == SC_MINIMIZE )
    {
    ShowWindow(SW_HIDE);
    m_bIsShow = FALSE;
    return;
    }

    怎么弹出的对话框最小化时显示到任务栏

    如何弹出的对话框最小化时显示到任务栏
    现在点最小化时,跑到左下角任务栏的上面了,怎么实现正常的显示在任务栏呢?
    不是托盘在任务栏右下角的那种~~~~
    谢谢!

    ------解决方案--------------------
    设置 WS_EX_APPWINDOW 即可
    ------解决方案--------------------
    ModifyStyleEx(0, WS_EX_APPWINDOW);
    设置WS_EX_APPWINDOW即可!


    5 非模态对话框
    CDialog* pdlg;//对话框指针。
    pdlg =new CBDlg;//创建对话框类对象。赋值给指针。
    pdlg->Create(IDD_ADlg);//对话框的ID。
    pdlg->ShowWindow(SW_SHOW);//显示窗口。


    6 模态对话框

    我现在ADlg显示是在XXApp的Instance()中实现:
    CADlg padlg;//对话框对象
    m_pMainWnd = &padlg;//
    padlg.DoModal();//模态对话框


    7 主界面的退出按钮响应。

    //退出消息接收。
    LRESULT CMyDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
    {
    // TODO: Add your specialized code here and/or call the base class
    switch(message)
    {
    //如果是用户定义的消息
    case MY_WM_NOTIFYICON:
    {

    //鼠标双击时主窗口出现
    if(lParam==WM_LBUTTONDBLCLK)
    {
    AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOW);
    m_bIsShow = TRUE;
    //停止闪烁
    KillTimer(1);
    HICON hIcon;
    hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    m_TrayIcon.hIcon = hIcon;
    ::Shell_NotifyIcon(NIM_MODIFY,&m_TrayIcon);
    if(hIcon)
    {
    ::DestroyIcon(hIcon);
    }

    }
    //鼠标右键单击弹出选单
    else if(lParam==WM_RBUTTONDOWN)
    {
    CMenu menu;
    menu.LoadMenu(IDR_MENU_RIGHT); //载入事先定义的选单
    CMenu *pMenu = menu.GetSubMenu(0);
    CPoint pos;
    GetCursorPos(&pos);
    pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,AfxGetMainWnd());
    }
    break;
    }
    //如果是系统消息
    case WM_SYSCOMMAND:
    {
    //接收到最小化消息和关闭消息时主窗口隐藏(即按关闭和最小化按钮)
    if(wParam == SC_MINIMIZE)
    {
    AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE);
    return 0;
    }
    if(wParam == SC_CLOSE)
    {
    OnExit();
    return 0;
    }
    break;
    }
    default:
    break;
    }
    return CDialog::WindowProc(message, wParam, lParam);
    }

    //退出响应函数。
    void CMyDlg::OnExit()
    {
    int ret=AfxMessageBox("确定退出软件吗?",MB_OKCANCEL);
    if (ret==IDOK)
    {
    CDialog::OnOK();
    }
    else if (ret==IDCANCEL)
    {
    return;
    }
    }

    8 托盘不用删掉。


    9 串口已经打开后,当变换了com号时,要同时关闭该com端口。

    //串口号改变。
    void CWork::OnSelchangeCombo5()
    {
    // TODO: Add your control notification handler code here
    if(m_ctrlComm.GetPortOpen())
    m_ctrlComm.SetPortOpen(FALSE);
    //设置发送按钮为有效。
    GetDlgItem(IDC_OPEN_SERIS)->EnableWindow(true);
    }


    10 给软件设置只能打开一个软件。


    // {76D2EE9D-E79C-4ce5-829C-1F5BC9E7E793}
    DEFINE_GUID(<<name>>,
    0x76d2ee9d, 0xe79c, 0x4ce5, 0x82, 0x9c, 0x1f, 0x5b, 0xc9, 0xe7, 0xe7, 0x93);


    0x76d2ee9d, 0xe79c, 0x4ce5, 0x82, 0x9c, 0x1f, 0x5b, 0xc9, 0xe7, 0xe7, 0x93


    #define one "0x76d2ee9d, 0xe79c, 0x4ce5, 0x82, 0x9c, 0x1f, 0x5b, 0xc9, 0xe7, 0xe7, 0x93"

    发现自己的不足,善于利用找到的方法去扬长避短。行动起来。
  • 相关阅读:
    Vue组件
    Vue表单修饰符(lazy,number,trim)
    Vue-表单输入绑定
    Vue-为什么在 HTML 中监听事件?
    Vue-鼠标按键修饰符
    Vue-系统修饰键
    Vue--按键修饰符(逐个学习按键修饰符)
    Vue--事件处理(逐个学习事件修饰符)
    Vue--事件处理
    Vue:列表渲染 v-for on a <template>
  • 原文地址:https://www.cnblogs.com/rechen/p/5076013.html
Copyright © 2020-2023  润新知