`
huozheleisi
  • 浏览: 1290631 次
文章分类
社区版块
存档分类
最新评论

曲线解决CMFCPropertyGridCtrl掩码的bug2009年12月30日 星期三 下午 01:24CMFCPropertyGridCtrl这个控件当用到掩码时,会有问题.解决办法用其他掩码替代.下面是一个IP掩码处理方法.代码如下

 
阅读更多
2009年12月30日 星期三 下午 01:24

CMFCPropertyGridCtrl这个控件当用到掩码时,会有问题.解决办法用其他掩码替代.下面是一个IP掩码处理方法.代码如下
class CMyMaskEditProp : public CMFCPropertyGridProperty
{
public:
CMyMaskEditProp(const CString& strName, const COleVariant& varValue, LPCTSTR lpszDescr = NULL, DWORD_PTR dwData = 0,
LPCTSTR lpszEditMask = NULL, LPCTSTR lpszEditTemplate = NULL, LPCTSTR lpszValidChars = NULL);

virtual BOOL OnUpdateValue();

protected:
virtual CWnd* CreateInPlaceEdit(CRect rectEdit, BOOL& bDefaultFormat);
//virtual BOOL OnSetCursor() const { return FALSE; /* Use default */ }
};
////////////////////////////////////////////////////////////////////////////////
// CMyMaskEditProp class
CMyMaskEditProp::CMyMaskEditProp(const CString& strName, const COleVariant& varValue, LPCTSTR lpszDescr, DWORD_PTR dwData,
LPCTSTR lpszEditMask, LPCTSTR lpszEditTemplate, LPCTSTR lpszValidChars):
CMFCPropertyGridProperty(strName,varValue, lpszDescr,dwData,
lpszEditMask, lpszEditTemplate,lpszValidChars)
{

}
BOOL CMyMaskEditProp::OnUpdateValue()
{
ASSERT_VALID(this);
ASSERT_VALID(m_pWndInPlace);
ASSERT_VALID(m_pWndList);
ASSERT(::IsWindow(m_pWndInPlace->GetSafeHwnd()));

//long lCurrValue = m_varValue.lVal;

CMaskEdit* pWndEdit = (CMaskEdit*) m_pWndInPlace;

CString str;
pWndEdit->GetWindowText(str);
if (str != (char *)(_bstr_t)m_varValue)
{
m_varValue=str;
m_pWndList->OnPropertyChanged(this);
}

return TRUE;
}

CWnd* CMyMaskEditProp::CreateInPlaceEdit(CRect rectEdit, BOOL& bDefaultFormat)
{
CMaskEdit* pWndEdit = new CMaskEdit;
pWndEdit->m_bisTime = FALSE;
pWndEdit->m_isdate = FALSE;
pWndEdit->m_bUseMask = TRUE;
pWndEdit->m_strMask = "000.000.000.000";
pWndEdit->m_strLiteral = "___.___.___.___";
pWndEdit->m_str = "255.255.255.255";
pWndEdit->m_strMaskLiteral = m_varValue.bstrVal;
DWORD dwStyle = WS_VISIBLE | WS_CHILD | ES_AUTOHSCROLL ;

if (!m_bEnabled || !m_bAllowEdit)
{
dwStyle |= ES_READONLY;
}

pWndEdit->Create(dwStyle, rectEdit, m_pWndList, AFX_PROPLIST_ID_INPLACE);
pWndEdit->SetWindowText((char *)(_bstr_t)m_varValue);

bDefaultFormat = TRUE;
return pWndEdit;

}

分享到:
评论

相关推荐

    掩码控件(开源、修正了Shift BUG)

    因为c# 自带的MaskedTextBox 控件 用'_'占位看起来很不舒服 还有就是:如果我要数值 就必须固定数值的位数。 这样真的是 "很烦,很讨厌" 哈哈!!...例:0{4,4}\年0{2,2}\月0{2,2}\日 为日期格式

    中文子网掩码和通配符掩码计算器

    这个例子中,前24位(即三个255)代表网络部分,剩下的8位代表主机部分。 通配符掩码(Wildcard Mask)则与子网掩码相反,用于定义网络安全策略,特别是访问控制列表(ACL)中。通配符掩码的每个0对应子网掩码中的1...

    shell实现netmask掩码和cidr掩码位转换1

    Shell 实现 Netmask 掩码和 CIDR 掩码位转换正是为了解决这个问题。 mask2cdr 函数 mask2cdr 函数是将 Netmask 掩码转换为 CIDR 掩码位的函数。该函数的实现原理是将 Netmask 掩码的四个八进制数转换为二进制数,...

    再也不怕算掩码.zip

    描述中的“每次给掩码让你口算对应ip段是不是很烦,有了这个工具再也不怕给掩码算不出对应的ip段了”进一步强调了这个工具的实用性和便利性。在没有这样的工具时,计算IP地址范围需要理解子网掩码的工作原理,以及...

    子网掩码计算.rar

    子网掩码是网络协议中的一个重要概念,它与IP地址紧密相关,用于定义网络部分和主机部分,从而划分网络中的不同子网。在IP地址32位二进制表示法中,子网掩码...这个"子网掩码计算"工具无疑是进行这些工作时的一大助手。

    子网掩码子网掩码计算器

    这个子网掩码可以表示为二进制的11111111.11111111.11111111.00000000,其中前24位是网络部分,后8位是主机部分。 2. 计算子网掩码的目的: 主要目的是为了将大的IP网络划分为更小的子网,以提高网络管理效率,...

    子网掩码,反掩码计算器

    在这个“子网掩码,反掩码计算器”中,提供了便捷的计算功能,帮助用户快速解决相关问题。 首先,我们来了解子网掩码。子网掩码(Subnet Mask)是一种用于标识IP地址中哪些部分属于网络地址,哪些部分属于主机地址...

    子网掩码计算器(支持IPV6,支持31位掩码)

    例如,一个IP地址192.168.1.1和子网掩码255.255.255.0,表示该IP地址属于192.168.1.0/24网络,其中“/24”指的是掩码中前24位为网络位,后8位为主机位。 IPV6的出现是为了应对IPV4地址空间耗尽的问题,其地址长度为...

    易语言取有掩码框的密码

    5. **取鼠标位置**:在某些情况下,可能需要知道鼠标在屏幕上的位置,这可以通过`取鼠标位置`(GetCursorPos)函数实现,这对于实现某些高级交互功能,如跟踪用户输入时的鼠标行为,可能会很有用。 6. **屏蔽窗口...

    ip地址掩码反掩码转换

    ip地址掩码,反掩码转换。软件支持将掩码长度转换为掩码或反掩码。

    子网掩码计算器下载/子网掩码计算器单机版--亲测好用

    子网掩码计算器下载/子网掩码计算器单机版--亲测好用 子网掩码计算器下载/子网掩码计算器单机版--亲测好用 子网掩码计算器下载/子网掩码计算器单机版--亲测好用 子网掩码计算器下载/子网掩码计算器单机版--亲测好用 ...

    子网掩码和可变长子网掩码

    子网掩码和可变长子网掩码 子网掩码是计算机网络中用于确定 IP 地址的网络部分和主机部分的掩码。它是 32 位二进制数,通常以点分十进制表示法表示。子网掩码的作用是将 IP 地址分为网络部分和主机部分,从而确定...

    oracle 开发中的数字掩码

    ### Oracle开发中的数字掩码知识点解析 在Oracle数据库开发过程中,数字掩码的应用十分广泛,尤其是在数据展示、格式化处理等方面。本文将基于提供的标题、描述、标签以及部分内容,深入探讨数字掩码的相关知识点。...

    子网及掩码计算器--两个经典绿色工具

    在IT网络领域,子网和掩码是网络划分与管理中的关键概念,它们对于理解网络拓扑、IP地址分配以及网络安全具有重要意义。...无论是在日常维护还是在解决网络问题时,这些绿色工具都能提供极大的帮助。

    子网掩码是什么?子网掩码的作用

    子网掩码是一个32位的二进制数,通常以点分十进制形式表示。它的格式为四个八位数组成,每个八位组可以是0到255之间的数值。在网络位,子网掩码的值为1,在主机位,子网掩码的值为0。 - **标准子网掩码**:对于不同...

    位图掩码MFC实现

    当我们将带有掩码的位图绘制到目标窗口时,黑色区域不会覆盖目标窗口的内容,而白色区域则会显示位图的色彩。这种机制使得我们可以在不改变原始位图的情况下实现透明效果。 在MFC中,我们可以使用CDC类的...

    掩码文本框(2.0)

    掩码文本框(MaskedTextBox)是C# WinForm应用程序中常用的一种控件,它允许用户按照预定义的格式输入数据,比如电话号码、日期、时间等。在2.0版本中,这个控件提供了更多的功能和灵活性,使得开发者能够更好地控制...

    C#132设置掩码文本框掩码属性 源代码

    在C#编程中,掩码文本框(MaskedTextBox)是一个非常实用的控件,它允许用户按照预定义的格式输入数据,例如电话号码、日期、时间等。在本主题中,我们将深入探讨如何设置C#中的掩码文本框的掩码属性以及相关的源...

    子网掩码计算器(保证是你见过的最好的支持IPV6)

    通过子网掩码,我们可以确定一个IP地址属于哪个网络以及该网络中可以有多少个可用的主机。例如,一个常见的IPv4子网掩码是255.255.255.0,它表示前24位是网络部分,后8位是主机部分。 而在IPv6中,由于地址空间的...

Global site tag (gtag.js) - Google Analytics