urenai 发表于 2024-2-27 12:40:02

@飞扬工作室 视窗的创建窗口有错误



例如设置无边框,但窗口被创建后会先显示为有边框,然后 闪一下 才改变为 无边框。


//   在创建窗口前本方法会被提前调用,此时需要根据用户所设置的相关属性将pCreateParam->m_dwStyle和
// pCreateParam->m_dwExStyle设置完整,以便调用方据此将窗口的用户区尺寸转换到窗口尺寸.
void CVWnd_WinForm::OnPrepareWindowStyle (CVolNativeWndCreateParam* pCreateParam)
{
#ifndef _VOL_FOR_UI_DESIGNER// 不为编译布局设计器专用版本?
    if (IsEmptyStr (pCreateParam->m_szCaption) && m_blpControlBox)
      pCreateParam->m_szCaption = _T_VOL_USER_APP_NAME;

    // if (m_blpTransparent)
      // pCreateParam->m_dwExStyle |= WS_EX_TRANSPARENT;
#endif

    pCreateParam->m_dwStyle |= WS_CLIPCHILDREN;

    if (m_npBorderType != 0)
    {
      if (IsEmptyStr (pCreateParam->m_szCaption) == FALSE || m_blpControlBox)
            pCreateParam->m_dwStyle |= (WS_CAPTION | WS_BORDER);

      if (m_blpControlBox)
            pCreateParam->m_dwStyle |= (WS_SYSMENU | WS_BORDER);

    #ifndef _VOL_FOR_UI_DESIGNER// 不为编译布局设计器专用版本?
      pCreateParam->m_dwStyle |= WS_DLGFRAME;
    #else
      pCreateParam->m_dwExStyle |= WS_EX_DLGMODALFRAME;
    #endif

      if (m_blpMaxBtn)
            pCreateParam->m_dwStyle |= WS_MAXIMIZEBOX;
      if (m_blpMinBtn)
            pCreateParam->m_dwStyle |= WS_MINIMIZEBOX;
    }

    switch (m_npBorderType)
    {
    case 1:// 普通可调边框
      pCreateParam->m_dwStyle |= WS_THICKFRAME;
      break;
    case 2:// 普通固定边框
      break;
    case 3:// 窄标题可调边框
      pCreateParam->m_dwStyle |= WS_THICKFRAME;
    case 4:// 窄标题固定边框
      pCreateParam->m_dwExStyle |= WS_EX_TOOLWINDOW;
      break;
    case 5:// 凹入式可调边框
      pCreateParam->m_dwStyle |= WS_THICKFRAME;
    case 6:// 凹入式固定边框
      pCreateParam->m_dwExStyle |= WS_EX_CLIENTEDGE;
      break;
    default:
      ASSERT (m_npBorderType == 0);// 无边框
      break;
    }


urenai 发表于 2024-2-27 12:41:52

换句话讲,不管你如何设置属性,他始终会以默认 风格创建,

创建完毕后才会 使 设置风格生效

白雪皑皑0306 发表于 2024-2-27 13:48:31

先设置可视窗口为假,打开程序后,在创建完成事件里再把窗口的可视设置为真,这样就不会出现闪了

urenai 发表于 2024-2-27 15:51:51

白雪皑皑0306 发表于 2024-2-27 13:48
先设置可视窗口为假,打开程序后,在创建完成事件里再把窗口的可视设置为真,这样就不会出现闪了 ...

歪招是有的,可明明已知是错误,就应当修复。

兵三进一 发表于 2024-2-27 20:48:06

urenai 发表于 2024-2-27 15:51
歪招是有的,可明明已知是错误,就应当修复。

似乎很多建议吴老板都视而不见,那还搞那些建议版本有毛用,懒得提意义了,爱啥地啥地,反正不靠这块生活!

LThs 发表于 2024-2-29 16:42:45

不管问题大小,有问题提出来就是好的,希望老吴能看见 修复 完善火山开发平台
页: [1]
查看完整版本: @飞扬工作室 视窗的创建窗口有错误