青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

穩定盈利的期貨交易方法-量化趨勢交易

alantop -專業量化投資者

愛好:量化投資,逆向工程,滲透
隨筆 - 595, 文章 - 0, 評論 - 921, 引用 - 0
數據加載中……

修改控件style的方法

簡單的說:

After the control has been created, these styles cannot be modified, except as noted.


修改控件風格
( )

CWnd* pWnd 為你控件的指針 ,LPCTSTR lpszClassName 是你控件的類名 , 比如編輯框是 "Edit", 按鈕是 "Button", 詳情可以使用 SPY++ 查看 .

?

BOOL ModifyControlStyle(CWnd* pWnd,LPCTSTR lpszClassName,DWORD dwRemove,DWORD dwAdd,DWORD dwRemoveEx,DWORD dwAddEx)

{

?CWnd* pParentWnd = pWnd->GetParent();

?

?CFont* pFont = pWnd->GetFont();

?

?CString strText;

?pWnd->GetWindowText(strText);

?

?{

? // 在此添加保存控件其他屬性的代碼 , 我只保存了字體和文字

?}

?

?CRect rcWindow;

?pWnd->GetWindowRect(&rcWindow);

?pParentWnd->ScreenToClient(rcWindow);

?

?DWORD dwNewStyle = (pWnd->GetStyle() & ~dwRemove) | dwAdd;

?DWORD dwNewStyleEx = (pWnd->GetExStyle() & ~dwRemoveEx) | dwAddEx;

?

?UINT nID = pWnd->GetDlgCtrlID();

?

?pWnd->ShowWindow(SW_HIDE);

?pWnd->DestroyWindow();

?

?BOOL bResult = pWnd->CreateEx(dwNewStyleEx,lpszClassName,strText,dwNewStyle,rcWindow,pParentWnd,nID);

?

?pWnd->SetFont(pFont);

?

?return bResult;

}

?

測試代碼 :

?

void CAboutDlg::OnButton()

{

?CWnd* pWnd = GetDlgItem(IDC_EDIT1);

?

?if(pWnd->GetStyle() & ES_PASSWORD)

?{

? ModifyControlStyle(pWnd,"Edit",ES_PASSWORD,0,0,0);

?}

?else

?{

? ModifyControlStyle(pWnd,"Edit",0,ES_PASSWORD,0,0);

?}

}

?

修改控件風格的第二種方法:

Changing Edit Control Styles at Runtime

It is not possible to change all the styles of an Edit Control at runtime using ModifyStyle() or ModifyStyleEx(). If you have the need to change the text alignment at runtime, for example, it is best to construct the Edit Control by calling new and CreateEx, then deleting it and creating a new one when the style is to be changed. Alternatively, you can have 2 Edit Controls superimposed and hide the one with the incorrect style.

?

In the demo, I use CreateEx to create the Edit Control, because then the extended style WS_EX_CLIENTEDGE can be used to give the 3D border for the control.

?

??? m_pFlyEdit->CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"),

??????? "", dwStyle, rc, this, IDC_EDIT6);

You will note the two lines that are commented out. If you enable those and comment out the above line, you will get a flat Edit Control (without border, unless you also uncomment the WS_BORDER style). The control remains flat because WS_EX_CLIENTEDGE is one of the styles that cannot be changed after creation.

?

//??? m_pFlyEdit->Create( dwStyle, rc, this, IDC_EDIT6 );

//??? m_pFlyEdit->ModifyStyleEx( 0, WS_EX_CLIENTEDGE );

In the demo, the Edit Controls headed 'Text Alignment test' change the alignment style. The code deletes the old Edit Control and creates a new one each time the radio buttons are clicked. ModifyStyle() is called for m_Edit3 but as you will note, it has no effect.

?

void CEditCtrlTutorialDlg::OnAlignmentChange(UINT nID)

{

??? UpdateData();

??? TRACE("CEditCtrlTutorialDlg::OnAlignmentChange( %d )\n",

???????????????????????????????????????????????? m_nAlignment);

??? DWORD dwStyle =

????? WS_CHILD|WS_VISIBLE|WS_TABSTOP/*|WS_BORDER*/|ES_AUTOHSCROLL;

?

??? switch( m_nAlignment )

??? {

??? case 1:

??????? dwStyle |= ES_CENTER;

??????? m_Edit3.ModifyStyle(ES_RIGHT|ES_LEFT,ES_CENTER);

??????? break;

??? case 2:

??????? dwStyle |= ES_RIGHT;

??????? m_Edit3.ModifyStyle(ES_CENTER|ES_LEFT,ES_RIGHT);

??????? break;

??? default:

??????? dwStyle |= ES_LEFT;

??????? m_Edit3.ModifyStyle(ES_CENTER|ES_RIGHT,ES_LEFT);

??????? break;

??? }

??? m_Edit3.Invalidate();

?

??? CString str = _T("");

??? if( m_pFlyEdit )

??? {

??????? m_pFlyEdit->GetWindowText( str );

??????? delete m_pFlyEdit;

??? }

?

??? CRect rc;

??? m_Template.GetWindowRect( &rc );

??? ScreenToClient( &rc );

??? m_pFlyEdit = new CEdit;

//??? m_pFlyEdit->Create( dwStyle, rc, this, IDC_EDIT6 );

//??? m_pFlyEdit->ModifyStyleEx( 0, WS_EX_CLIENTEDGE );

??? m_pFlyEdit->CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"),

?????????????????????????? "", dwStyle, rc, this, IDC_EDIT6);

??? // set font same as dialog to be sure they are the same

??? m_pFlyEdit->SetFont( GetFont() );

??? m_pFlyEdit->SetWindowText( str );

?

??? UpdateData(FALSE);

}

ES_UPPERCASE and ES_LOWERCASE styles need to be treated in the same way. ES_READONLY style can be changed by calling the SetReadOnly() member function as shown in the demo.

?

void CEditCtrlTutorialDlg::OnReadOnly()

{

??? UpdateData();

??? m_Edit2.SetReadOnly( m_bReadOnly );

}

The ES_NUMBER style can also be changed at runtime using ModifyStyle(). It is handy where an Edit Control is used for multiple purposes and also to turn the style in case it was forgotten in the RC script. The code below will actually toggle the style:

?

void CEditCtrlTutorialDlg::OnNumbersOnly()

{

??? UpdateData();

??? m_Edit7.SetSel(0,-1);??????? // select all the text

??? m_Edit7.Clear();??????????? // delete selection

??? m_Edit7.ModifyStyle(ES_NUMBER*(m_bNumbersOnly==FALSE),

?????????????????????????? ??ES_NUMBER*(m_bNumbersOnly==TRUE));

}

In this example, the Edit Control is also cleared while the style is changed. A number-only Edit Control can have non-numeric characters in it. It just won't permit them to be entered from the keyboard.

?

posted on 2006-05-24 20:16 AlanTop 閱讀(1160) 評論(0)  編輯 收藏 引用 所屬分類: C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品国产999大香线蕉| 国产一区二区三区成人欧美日韩在线观看| 欧美亚洲三级| 欧美精品18+| 免费久久99精品国产自在现线 | 亚洲一区三区视频在线观看| 亚洲国产欧美一区二区三区丁香婷| 亚洲一级二级| 亚洲视频在线观看一区| 免费日韩精品中文字幕视频在线| 久久精视频免费在线久久完整在线看| 欧美日韩视频一区二区| 欧美电影在线观看完整版| 国产一区二区三区免费不卡 | 久久激情综合网| 欧美亚洲一区二区在线| 欧美日韩亚洲一区二区三区四区 | 亚洲天堂偷拍| 亚洲一区二区三区视频播放| 欧美乱妇高清无乱码| 欧美激情影院| 91久久夜色精品国产网站| 久久―日本道色综合久久| 久久婷婷国产综合尤物精品| 国产亚洲精品综合一区91| 亚洲综合日韩在线| 性色av一区二区三区| 国产精品丝袜久久久久久app| 亚洲午夜一区| 性做久久久久久免费观看欧美| 欧美视频在线播放| 一区二区高清在线| 亚洲免费视频网站| 国产精品福利在线| 亚洲社区在线观看| 久久不射中文字幕| 黄色成人av在线| 久久手机免费观看| 亚洲国产综合91精品麻豆| 亚洲电影免费观看高清完整版在线观看 | 国产婷婷97碰碰久久人人蜜臀| 亚洲一卡二卡三卡四卡五卡| 性伦欧美刺激片在线观看| 国产精品一区在线观看你懂的| 亚洲欧美日本另类| 麻豆精品一区二区av白丝在线| 亚洲国产精品久久久久秋霞不卡| 欧美成人四级电影| 亚洲最新色图| 久久久久在线观看| 亚洲日本成人在线观看| 欧美日韩麻豆| 欧美一区二区视频观看视频| 模特精品裸拍一区| 亚洲午夜一区二区三区| 国产精品视频观看| 久久久噜噜噜久噜久久| 最新精品在线| 久久精品国产99| 日韩亚洲国产欧美| 国产午夜精品久久| 免费亚洲电影在线| 午夜精品www| 亚洲精品国产日韩| 久久深夜福利| 亚洲一区二区三区高清| 激情综合亚洲| 国产精品美女久久| 欧美国产一区在线| 久久精品在线| 亚洲图片欧美午夜| 亚洲国产日韩欧美| 久久在线91| 欧美一区二区观看视频| 亚洲理伦电影| 一色屋精品视频在线看| 国产精品福利网站| 欧美成人性网| 久久久久久午夜| 亚洲一区二区三区四区在线观看| 亚洲电影下载| 久久午夜精品一区二区| 亚洲一区二区黄色| 亚洲精品国产精品国自产观看| 国产三级精品在线不卡| 欧美午夜寂寞影院| 欧美韩日一区二区三区| 久久久久久9| 午夜影院日韩| 亚洲一区二区三区在线| 99国产精品久久久| 欧美国产三区| 免费看的黄色欧美网站| 久久精品欧美| 欧美在线一二三| 午夜精品理论片| 亚洲夜间福利| 亚洲私拍自拍| 亚洲婷婷免费| 亚洲先锋成人| 国产精品99久久99久久久二8 | 蜜桃av一区| 久久久久久久综合狠狠综合| 欧美在线观看视频一区二区| 午夜在线视频观看日韩17c| 亚洲天堂偷拍| 亚洲性av在线| 午夜精品久久久久久久白皮肤| 中文国产成人精品| 亚洲午夜影视影院在线观看| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲欧美国产精品va在线观看| 亚洲午夜91| 亚洲欧美色一区| 久久国产精品99国产| 久久精品动漫| 每日更新成人在线视频| 免费在线观看精品| 欧美屁股在线| 欧美亚韩一区| 国产一区二区三区免费不卡| 黄色在线成人| 亚洲美女少妇无套啪啪呻吟| 正在播放欧美一区| 亚洲欧美日韩精品久久久| 欧美中在线观看| 老**午夜毛片一区二区三区| 欧美电影在线观看| 亚洲毛片在线观看| 亚洲一区日韩| 狂野欧美激情性xxxx| 欧美裸体一区二区三区| 国产精品久久久久久久久| 国产亚洲精品7777| 亚洲激情国产| 亚洲欧美日韩国产精品| 久久蜜臀精品av| 亚洲精品午夜| 午夜精品一区二区三区四区| 久久亚洲捆绑美女| 欧美美女操人视频| 国产真实精品久久二三区| 亚洲精品一区二区三区婷婷月| 亚洲香蕉在线观看| 久久久天天操| 一区二区不卡在线视频 午夜欧美不卡在 | 久久综合国产精品| 欧美午夜免费电影| 在线播放精品| 亚洲一区国产视频| 嫩草影视亚洲| 亚洲男人的天堂在线aⅴ视频| 久久综合色一综合色88| 欧美午夜在线一二页| 伊人一区二区三区久久精品| 在线视频亚洲| 美国十次成人| 亚洲尤物视频在线| 欧美紧缚bdsm在线视频| 国模大胆一区二区三区| 亚洲图片你懂的| 欧美激情视频在线播放| 亚欧成人在线| 欧美日韩综合另类| 亚洲人成在线观看网站高清| 久久黄色影院| 在线亚洲观看| 欧美激情在线播放| 亚洲二区视频在线| 午夜精品亚洲| 日韩午夜电影| 欧美精品啪啪| 亚洲日本欧美| 免费亚洲电影在线观看| 性做久久久久久| 国产精品国产三级国产| 日韩一级大片在线| 欧美黄色网络| 久热国产精品| 亚洲高清在线播放| 久久人人九九| 久久成人精品| 国产一区二区成人久久免费影院| 亚洲自拍偷拍一区| 夜夜嗨av一区二区三区网站四季av| 欧美成人免费观看| 1000部精品久久久久久久久| 久久在线免费观看视频| 欧美一区三区二区在线观看| 国产精品私房写真福利视频| 亚洲一区二区视频在线观看| 日韩视频三区| 国产精品福利片| 亚洲欧美精品在线| 亚洲无亚洲人成网站77777| 国产精品国色综合久久| 亚洲一区二区黄| 亚洲欧美日韩在线| 国产一区二区三区在线免费观看 | 狠狠爱成人网|