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

穩(wěn)定盈利的期貨交易方法-量化趨勢(shì)交易

alantop -專業(yè)量化投資者

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

修改控件style的方法

簡單的說:

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


修改控件風(fēng)格
( )

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);

?}

}

?

修改控件風(fēng)格的第二種方法:

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 閱讀(1159) 評(píng)論(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>
            蜜臀99久久精品久久久久久软件| 久久精品亚洲精品| 欧美日韩精品一区| 欧美国产日韩亚洲一区| 欧美激情国产日韩| 欧美日韩亚洲一区二区三区在线观看 | 校园春色综合网| 欧美影片第一页| 欧美a级在线| 亚洲老板91色精品久久| 亚洲一级在线观看| 久久精品人人做人人爽| 欧美精品在线观看91| 国产精品亚洲综合一区在线观看 | 国产主播精品在线| 亚洲精品一区在线| 性欧美video另类hd性玩具| 久久久精品一区| 亚洲国产精品999| 日韩一区二区精品| 久久精品综合| 欧美午夜久久久| 尤物99国产成人精品视频| 亚洲性图久久| 欧美大学生性色视频| 亚洲丝袜av一区| 久久综合导航| 国产女主播一区| 一本久久综合| 欧美福利一区二区| 欧美一级大片在线免费观看| 欧美人体xx| 亚洲国产专区| 久久中文字幕一区| 亚洲自拍偷拍福利| 欧美乱在线观看| 亚洲国产精品成人综合色在线婷婷| 亚洲综合国产激情另类一区| 欧美激情第3页| 久久久久久噜噜噜久久久精品| 欧美网站大全在线观看| 亚洲精品欧美日韩专区| 国产精品v欧美精品v日韩精品| 国产综合色在线| 午夜精品亚洲| 一区二区激情视频| 欧美—级在线免费片| 亚洲国产mv| 蜜桃精品久久久久久久免费影院| 亚洲欧美日韩国产中文| 国产精品黄色在线观看| 亚洲素人一区二区| 亚洲免费精品| 欧美日韩免费观看一区=区三区| 亚洲国产激情| 欧美成人免费va影院高清| 欧美中文字幕| 黄网站色欧美视频| 久久婷婷久久| 乱码第一页成人| 亚洲国产精品成人一区二区 | 久久一区二区三区四区| 国内精品免费午夜毛片| 久久噜噜亚洲综合| 久久狠狠亚洲综合| 在线观看不卡av| 亚洲大片av| 欧美激情一区三区| 亚洲天堂成人在线视频| 亚洲视频999| 国产香蕉久久精品综合网| 久久精品国产清高在天天线| 久久成人一区| 亚洲精品一区二区三区不| 亚洲精品社区| 国产欧美日韩综合一区在线播放| 久久九九久久九九| 免播放器亚洲一区| 亚洲香蕉伊综合在人在线视看| 亚洲图片欧美日产| 黄色日韩精品| 亚洲免费观看高清在线观看 | 夜夜爽www精品| 亚洲影院色无极综合| 黄色欧美日韩| 日韩视频在线观看一区二区| 国产麻豆一精品一av一免费| 老司机午夜免费精品视频| 欧美剧在线观看| 久久精品中文字幕一区| 欧美精品观看| 久久―日本道色综合久久| 欧美黄色影院| 久久久久久久久久久久久女国产乱| 久久亚洲综合色一区二区三区| 亚洲精品孕妇| 久久国产日本精品| 亚洲无线观看| 老色鬼精品视频在线观看播放| 国产精品99久久99久久久二8 | 欧美日韩高清在线观看| 久久精品女人天堂| 欧美精品观看| 久久亚洲捆绑美女| 国产精品成人播放| 亚洲国产精品99久久久久久久久| 国产无一区二区| 99在线精品免费视频九九视| 尤物99国产成人精品视频| 亚洲一区二区三区欧美| 日韩视频亚洲视频| 久久精品一区蜜桃臀影院 | 亚洲国产一二三| 韩日欧美一区二区| 亚洲一区免费视频| 亚洲午夜精品久久| 欧美激情精品久久久久久| 美女成人午夜| 国产真实久久| 亚洲综合色婷婷| 亚洲免费婷婷| 国产精品sm| 亚洲视频在线观看视频| 亚洲午夜高清视频| 欧美三级电影网| 亚洲精选一区二区| 一区二区激情视频| 欧美剧在线免费观看网站| 亚洲高清免费视频| 亚洲欧洲日韩综合二区| 浪潮色综合久久天堂| 欧美99久久| 亚洲激情网站| 欧美激情在线有限公司| 亚洲第一在线综合在线| 亚洲国产精品综合| 欧美激情欧美激情在线五月| 亚洲第一天堂无码专区| 日韩网站在线观看| 欧美日在线观看| 亚洲欧美一区二区三区久久| 久久精品二区三区| 伊人成人在线视频| 美腿丝袜亚洲色图| 亚洲人精品午夜| 亚洲女同性videos| 国精产品99永久一区一区| 久久精品国产99精品国产亚洲性色| 久久国产乱子精品免费女| 国内精品久久久久影院色| 久久伊人免费视频| 亚洲欧洲在线免费| 午夜精品福利在线观看| 国产一区二区三区直播精品电影| 久久久久久九九九九| 亚洲国产日韩综合一区| 亚洲女同在线| 亚洲高清在线视频| 国产精品草草| 久久久亚洲人| 中文国产一区| 欧美高清视频| 亚洲视频专区在线| 韩日视频一区| 欧美日韩视频在线一区二区| 欧美一区二区三区成人| 亚洲国产欧美久久| 好看的亚洲午夜视频在线| 久久精品国产99国产精品澳门| 亚洲一区国产一区| 久久手机精品视频| 99国产精品| 国产农村妇女精品| 欧美大片在线看| 亚洲欧美国产高清| 亚洲高清成人| 久久蜜桃精品| 亚洲综合精品自拍| 亚洲国产成人在线| 国产精品毛片一区二区三区| 久久综合亚州| 午夜视频在线观看一区| 亚洲精品日韩在线| 另类尿喷潮videofree| 亚洲欧美久久久| 亚洲日本成人| 国产一区二区三区四区三区四| 欧美日韩免费高清一区色橹橹| 久久免费精品视频| 午夜欧美精品| 亚洲一区二区精品在线观看| 亚洲国产日韩欧美在线图片| 久久亚洲欧美国产精品乐播| 午夜精品视频在线| 一本一本久久| 99亚洲视频| 亚洲人www| 亚洲国产合集| 1000部国产精品成人观看| 国产午夜亚洲精品羞羞网站|