ModifyStyle 设置问题

glovel0425 2011-12-15 01:29:18
本来我的编辑框是单行输入的,为什么用M.ModifyStyle(NULL,ES_AUTOVSCROLL|ES_MULTILINE|ES_WANTRETURN);后不起作用?
...全文
663 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
glovel0425 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 afairycell 的回复:]

是不是编辑框太小了只有1行?记得有这个属性。。
[/Quote]不是,显示的时候有颜色区分的,而且 multilin和want return都选择了。回车也不会换行
glovel0425 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 bazzi2011 的回复:]

引用 11 楼 glovel0425 的回复:
基于对话框的,但是居中或是右对齐也不符合常理嘛~ 还有没有好点的办法呢。。。

反正VC6的edit就这个德行,这也是没办法的事情!也许高版本的VS2005、2008、2010会支持吧!

话说回来,你想要实现什么样的效果?是不是那种选择一个功能、让edit在可换行与不可换行之间任意切换的功能吗???如果是这样,你只能每次销毁后重建了!
……
[/Quote]其实是这样的,我这个edit是用vs2003 生成的,我有个自定义edit类,然后将其添加为这个自定义类型的变量,然后显示到界面时就是单行的文本。我现在不知道该如何修改,将此edit输出为多行的。。
afairycell 2011-12-16
  • 打赏
  • 举报
回复
是不是编辑框太小了只有1行?记得有这个属性。。
bazzi2011 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 glovel0425 的回复:]
基于对话框的,但是居中或是右对齐也不符合常理嘛~ 还有没有好点的办法呢。。。[/Quote]

反正VC6的edit就这个德行,这也是没办法的事情!也许高版本的VS2005、2008、2010会支持吧!

话说回来,你想要实现什么样的效果?是不是那种选择一个功能、让edit在可换行与不可换行之间任意切换的功能吗???如果是这样,你只能每次销毁后重建了!

如果单纯的希望edit换行,直接设置它的属性不就行了!
glovel0425 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bazzi2011 的回复:]

引用 9 楼 glovel0425 的回复:
是啊,还有什么办法可以啊。着急呢。一小天了。。哎…………


你是基于对话框的程序还是单文档的???

我看了一下,edit的输入文字为left时好像不支持自动换行,你加个ES_CENTER 或者 ES_RIGHT 试试。让文字不从左面开始,应该就可以换行了。

C/C++ code


加一个ES_RIGHT
M.ModifySt……
[/Quote]基于对话框的,但是居中或是右对齐也不符合常理嘛~ 还有没有好点的办法呢。。。
bazzi2011 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 glovel0425 的回复:]
是啊,还有什么办法可以啊。着急呢。一小天了。。哎…………
[/Quote]

你是基于对话框的程序还是单文档的???

我看了一下,edit的输入文字为left时好像不支持自动换行,你加个ES_CENTER 或者 ES_RIGHT 试试。让文字不从左面开始,应该就可以换行了。



加一个ES_RIGHT
M.ModifyStyle(NULL,ES_RIGHT | ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN);


或者加一个ES_CENTER

M.ModifyStyle(NULL,ES_CENTER | ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN);

glovel0425 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bazzi2011 的回复:]

引用 7 楼 glovel0425 的回复:
引用 6 楼 bazzi2011 的回复:
您的意思就是说如果我在初始化时没有设置他的风格的话,以后就设置不了? 还有就是我用这个的原因是我用编译器生成的控件(生成时已经设置好了style) 然后与自定义控件类绑定,由自定义控件生成。生成出来的控件就会失去原有的属性。 想手动设置一下 却碍于能力有限,敢问能否实现我的想法?

我的意思是,Mo……
[/Quote]是啊,还有什么办法可以啊。着急呢。一小天了。。哎…………
bazzi2011 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 glovel0425 的回复:]
引用 6 楼 bazzi2011 的回复:
您的意思就是说如果我在初始化时没有设置他的风格的话,以后就设置不了? 还有就是我用这个的原因是我用编译器生成的控件(生成时已经设置好了style) 然后与自定义控件类绑定,由自定义控件生成。生成出来的控件就会失去原有的属性。 想手动设置一下 却碍于能力有限,敢问能否实现我的想法?[/Quote]

我的意思是,ModifyStyle这个添加、删除控件的函数,对某些控件的某些风格,可以添加成功,但对有些控件的某些风格,不可以添加成功。

如果你的代码没错,那就是这个ModifyStyle不支持为这个控件添加这种风格。
glovel0425 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bazzi2011 的回复:]

以前写过很多控件程序,以本人小小的经验来谈,ModifyStyle就是个坑爹货!!!

ModifyStyle有时候管用有时候不管用,就像段誉的六脉神剑。至于原因,恐怕只有写这个函数的程序员知道了!

那些漂亮的界面、点击改变外观与功能的控件,100%是销毁后重新创建的,用ModifyStyle几乎没有!
[/Quote]您的意思就是说如果我在初始化时没有设置他的风格的话,以后就设置不了? 还有就是我用这个的原因是我用编译器生成的控件(生成时已经设置好了style) 然后与自定义控件类绑定,由自定义控件生成。生成出来的控件就会失去原有的属性。 想手动设置一下 却碍于能力有限,敢问能否实现我的想法?
bazzi2011 2011-12-15
  • 打赏
  • 举报
回复
以前写过很多控件程序,以本人小小的经验来谈,ModifyStyle就是个坑爹货!!!

ModifyStyle有时候管用有时候不管用,就像段誉的六脉神剑。至于原因,恐怕只有写这个函数的程序员知道了!

那些漂亮的界面、点击改变外观与功能的控件,100%是销毁后重新创建的,用ModifyStyle几乎没有!

glovel0425 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shen_wei 的回复:]

GetDlgItem(IDC_EDIT)->ModifyStyle()
[/Quote]还能有其他说法么?
glovel0425 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shen_wei 的回复:]

GetDlgItem(IDC_EDIT)->ModifyStyle()
[/Quote]嗯,我这个方法是控件变量调用的,跟你那个一个意思吧。 结果却是没作用~
shen_wei 2011-12-15
  • 打赏
  • 举报
回复
GetDlgItem(IDC_EDIT)->ModifyStyle()
glovel0425 2011-12-15
  • 打赏
  • 举报
回复
本来就没人来回答,管理员还删我的回复 T T
MFC开发过程序所需的ModifyStyle(needDelStyle,needAddStyle,SWP_FRAMECHANGED); Sytel: WS_BORDER Creates a window that has a border. WS_CAPTION Creates a window that has a title bar (implies the WS_BORDER style). Cannot be used with the WS_DLGFRAME style. WS_CHILD Creates a child window. Cannot be used with the WS_POPUP style. WS_CHILDWINDOW Same as the WS_CHILD style. WS_CLIPCHILDREN Excludes the area occupied by child windows when you draw within the parent window. Used when you create the parent window. WS_CLIPSIBLINGS Clips child windows relative to each other; that is, when a particular child window receives a paint message, the WS_CLIPSIBLINGS style clips all other overlapped child windows out of the region of the child window to be updated. (If WS_CLIPSIBLINGS is not given and child windows overlap, when you draw within the client area of a child window, it is possible to draw within the client area of a neighboring child window.) For use with the WS_CHILD style only. WS_DISABLED Creates a window that is initially disabled. WS_DLGFRAME Creates a window with a double border but no title. WS_GROUP Specifies the first control of a group of controls in which the user can move from one control to the next with the arrow keys. All controls defined with the WS_GROUP style FALSE after the first control belong to the same group. The next control with the WS_GROUP style starts the next group (that is, one group ends where the next begins). WS_HSCROLL Creates a window that has a horizontal scroll bar. WS_ICONIC Creates a window that is initially minimized. Same as the WS_MINIMIZE style. WS_MAXIMIZE Creates a window of maximum size. WS_MAXIMIZEBOX Creates a window that has a Maximize button. WS_MINIMIZE Creates a window that is initially minimized. For use with the WS_OVERLAPPED style only. WS_MINIMIZEBOX Creates a window that has a Minimize button. WS_OVERLAPPED Creates an overlapped window. An overlapped window usually has a caption a

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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