一个关于IP ADDRESS Control的问题?

glyc 2002-11-08 03:55:18
我在C++Builder5中,建立一个新工程。
在一个按钮中创建一个IP ADDRESS Control控件(CreateWindow),另一个按钮中删除它(DestroyWindow),先创建IP ADDRESS Control,然后删除它,屏幕刷新后,主form的字体就变了(无论以前是什么字体),Font属性的内容变的很乱。
这是为什么?
...全文
345 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
glyc 2002-12-18
  • 打赏
  • 举报
回复
上面的还不明白我的用意:
是保持窗口原来的字体,而不是设置为默认的GUI字体。
我用WM_GETFONT总是得到NULL。
各位有什么好办法?
s98231106 2002-12-14
  • 打赏
  • 举报
回复
HWND hfont=GetStockObject(DEFAULT_GUI_FONT);
SendMessage(Handle,WM_SETFONT,(DWORD)hfont,0);
warton 2002-12-14
  • 打赏
  • 举报
回复
重新设置一下字体,是它改变了默认的语言字符集??
NowCan 2002-12-12
  • 打赏
  • 举报
回复
唉,失望。
glyc 2002-12-12
  • 打赏
  • 举报
回复
使用SendMessage(hip,WM_CLOSE,NULL,NULL);
没有解决问题,问题依旧。
glyc 2002-12-12
  • 打赏
  • 举报
回复
没想到这个贴过了这么久,还有热心人回复。向各位学习。
把COKING的方法拿回去试一试。
COKING 2002-11-28
  • 打赏
  • 举报
回复
HWND hfont=GetStockObject(DEFAULT_GUI_FONT);
SendMessage(Handle,WM_SETFONT,(DWORD)hfont,0);

不要使用DestroyWindow,用SendMessage(hip,WM_CLOSE,NULL,NULL);
删除它。
Wingsun 2002-11-28
  • 打赏
  • 举报
回复
好像是在销毁的时候有一个什么消息要处理去了,记得不是很清楚了.你看看MSDN吧!那上面有说明的
VenusC 2002-11-28
  • 打赏
  • 举报
回复
VC6里有个很好用的IP Address Ctrl控件,不知道怎么引过来,
从ocx里导入时,在所有ocx里面没查到。有谁知道在哪个ocx里?
NowCan 2002-11-09
  • 打赏
  • 举报
回复


前两天做一个软件,需要用到输入IP地址的那种专用输入框(就是Windows里网络设置里面的那种),上网搜索了一下,居然还不易找到合适的控件,现在就讲述一下不用控件如何做出这种输入框。
IP地址控件是Windows里的一种标准控件,安装IE4.0以上就可以使用了。具体的使用方法如下。

首先,调用InitCommonControlsEx初始化Windows Common Control,它的Class是ICC_INTERNET_CLASSES,然后用CreateWindow建立这个控件,指定类名是"SysIPAddress32",并且需要指定WS_CHILD属性,其他参数和建立普通窗口没什么区别,然后调用ShowWindow将其显示出来。至此,界面部分完成,例如我的程序里就有如下程序段。

INITCOMMONCONTROLSEX CommCtrl;
CommCtrl.dwSize=sizeof(CommCtrl);
CommCtrl.dwICC=ICC_INTERNET_CLASSES;//指定Class
if(InitCommonControlsEx(&CommCtrl))
{
IP1=CreateWindow(TEXT("SysIPAddress32"),//IP地址控件的类名
TEXT("IPADDR1"),
WS_CHILD | WS_TABSTOP | WS_GROUP,
10,
72,
130,
24,
Panel1->Handle,//这个是父窗口的句柄
0,
0,
0);
IP2=CreateWindow(TEXT("SysIPAddress32"),
TEXT("IPADDR2"),
WS_CHILD | WS_TABSTOP | WS_GROUP,
160,
72,
130,
24,
Panel1->Handle,
0,
0,
0);
ShowWindow(IP1, SW_SHOW);
ShowWindow(IP2, SW_SHOW);
}

这样,这个IP地址输入框就可以输入了,但是它没有什么用,我们至少还需要在程序里将输入的IP地址读出来,这个是用SendMessage实现的,指定消息IPM_GETADDRESS,::SendMessage(IP1, IPM_GETADDRESS, 0, (LPARAM) & dwIPAddr);dwIPAddr就是读出的IP地址,为了方便使用还有四个宏用来读出四个段的数值,FIRST_IPADDRESS,SECOND_IPADDRESS,THIRD_IPADDRESS,FOURTH_IPADDRESS,这样一个基本可用的IP地址输入框就做成了。

当然,关于这个控件还有很多的东西,有兴趣可以到MSDN查IP Address Controls仔细研究。

 

NowCan 2002-11-09
  • 打赏
  • 举报
回复
不知道,我没有在程序中删过这个东西。
http://vip.6to23.com/NowCan1/tech/ip_addr_ctrl.htm
SuperSuperLéon 2002-11-08
  • 打赏
  • 举报
回复
这个IP control我也试着写过,但没有成功。不知哪里错了。

后来就没去理他。

可以把code贴出来让我们学习学习吗?

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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