请教一个关于窗口模式改变的问题

Hanson_bati_zhu 2002-03-07 06:54:58
兄弟想请教一个问题

怎么才能做一个类似Office文件打开窗口那样的
可以改变窗口大小的非模态窗口

兄弟通过使用SetWindowLong已经基本实现这个功能
但这个窗口的SysMenu却没有了
不知道该怎么搞了

因为兄弟是使用PB做开发工作
所以希望能够通过使用API函数实现这个功能

先谢过各位了

8-)

...全文
55 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
TO: prometheusphinx(白日梦)
多谢兄台的大力支持
这些属性兄弟已经试验过了
好像还是不灵啊
8-(

还望大侠多多帮助
再次谢谢了




高手们
这个问题对VC而言好像应该不是什么难题啊
而且
这个问题也不会涉及到诸位的商业机密啊

为什么没有人能给解答一下呢

天啊~~~~~~~~~~

8-(
prometheusphinx 2002-03-08
  • 打赏
  • 举报
回复
GWL_STYLE:
WS_POPUPWINDOW
WS_VISIBLE
WS_CLIPSIBLINGS
WS_CLIPCHILDREN
WS_DLGFRAME
WS_THICKFRAME
WS_OVERLAPPED
DS_MODALFRAME

GWL_EXSTYLE
WS_EX_DLGMODALFRAME
WS_EX_WINDOWEDGE
Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
大侠帮忙啊~~~~~~~
8-(

Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
to: Kevin_qing
是不是只有对话框才能有这个功能

兄弟对VC知之甚少,大侠不要见怪
Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
to: Kevin_qing
兄弟用的是PB
在PB中是Response型窗口
应该等于VC中的非模态窗口



Kevin_qing 2002-03-08
  • 打赏
  • 举报
回复
到底是对话框还是窗口啊?
Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
逐位大侠帮忙啊
。。。。。。。。。
Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
再加10分
兄弟就这么多分了
大家别笑话
8-)
Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
to: darkwing()
是兄弟说错了

兄弟看到的可以改变大小的非模态窗口
不是OFFICE里的那个
是兄弟使用CommDlg32.dll中的GetOpenFileNameA函数打开的一个文件选择窗口
不知道它是怎么弄的
它就行

兄弟决定通过API修改窗口风格应该能够实现这个效果的
8-(
arloan 2002-03-08
  • 打赏
  • 举报
回复
WS_POPUPWINDOW | WS_CAPTION
注意,WS_POPUPWINDOW 与 WS_CHILD冲突.如果你的不是child window,
那么可以使用
WS_CHILD | WS_OVERLAPPEDWINDOW
Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
to: Kevin_qing()

SIR,我根据你的方法试过了
还是不灵啊


8-(


算了吧
就这么凑合着吧
8-(

结帐了



好失望啊
8-(
Kevin_qing 2002-03-08
  • 打赏
  • 举报
回复
试试吧~不行再说
LONG ws=GetWindowLong(hWnd,GWL_STYLE);
ws|=WS_THICKFRAME; //Enable resize
SetWindowLong(hWnd,GWL_STYLE,ws);
SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_FRAMECHANGED|SWP_NOSIZE|SWP_NOMOVE);



prometheusphinx 2002-03-08
  • 打赏
  • 举报
回复
老弟,这样纸上谈兵太费劲了,最好你能给我一个EXE,没有别的,就只有你那个对话框,让我试试怎么才能改一改它的style。
Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
多谢prometheusphinx兄提醒
8-)
Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
刚才兄弟一时笔误
写错了

应该是

如果把STYLE改成96CC0000可以显示关闭按钮和SYSMENU
但鼠标移动到窗口边界时,只改变鼠标形状,但不能改变窗口尺寸

Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
to: Kevin_qing()
诚然,兄弟对VC知之甚少
而且对一些专业术语可能有混淆的地方
但兄弟是诚心诚意的来寻求解决问题的方法

兄台是高手高手高高手
估计这么简单的问题懒得回答

希望没有污损了兄台的法眼

prometheusphinx 2002-03-08
  • 打赏
  • 举报
回复
只改变大小,不能改变窗口尺寸?????
jenkin 2002-03-08
  • 打赏
  • 举报
回复
当然有模式和非模式的区别。vc中

模式:结束用EndDialog();WM_INITDLALOG 代替 WM_CREATE消息初始化

非模式:不会被WINDOWS系统接管,结束用DestroyWindows()

大概这样,还有点区别。哈哈
Kevin_qing 2002-03-08
  • 打赏
  • 举报
回复


窗口有模式和非模式的区别吗?

窗口大小和窗口尺寸有什么区别啊?
Hanson_bati_zhu 2002-03-08
  • 打赏
  • 举报
回复
如果把STYLE改成96CC0000可以显示关闭按钮和SYSMENU
但鼠标移动到窗口边界时,只改变大小,不能改变窗口尺寸

用SPY++也能截获到WM_NCLBUTTONDOWN和WM_NCMOUSEMOVE消息
加载更多回复(15)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧