📄 wdefbutt.c
字号:
else {
CheckDlgButton ( hDlg, IDB_BS_LEFT, 1);
}
if ( GETCTL_STYLE(o_info->info.c.info) & BS_NOTIFY ) {
CheckDlgButton ( hDlg, IDB_BS_NOTIFY, 1);
}
if ( GETCTL_STYLE(o_info->info.c.info) & BS_PUSHLIKE ) {
CheckDlgButton ( hDlg, IDB_BS_PUSHLIKE, 1);
}
if ( GETCTL_STYLE(o_info->info.c.info) & BS_LEFTTEXT ) {
CheckDlgButton ( hDlg, IDB_BS_LEFTTEXT, 1);
}
#else
EnableWindow ( GetDlgItem(hDlg, IDB_BS_NOTIFY), FALSE );
EnableWindow ( GetDlgItem(hDlg, IDB_BS_PUSHLIKE), FALSE );
EnableWindow ( GetDlgItem(hDlg, IDB_BS_LEFTTEXT), FALSE );
EnableWindow ( GetDlgItem(hDlg, IDB_BS_LEFT), FALSE );
EnableWindow ( GetDlgItem(hDlg, IDB_BS_RIGHT), FALSE );
EnableWindow ( GetDlgItem(hDlg, IDB_BS_CENTER), FALSE );
if ( mask == BS_3STATE ) {
CheckDlgButton ( hDlg, IDB_BS_3STATE, 1);
} else if ( mask == BS_AUTOCHECKBOX ) {
CheckDlgButton ( hDlg, IDB_BS_AUTOCHECKBOX, 1);
} else if ( mask == BS_AUTO3STATE ) {
CheckDlgButton ( hDlg, IDB_BS_3STATE, 1);
CheckDlgButton ( hDlg, IDB_BS_AUTOCHECKBOX, 1);
}
#endif
} else if ( id == RBUTTON_OBJ ) {
check_lefttext = TRUE;
#if __NT__XX
EnableWindow ( GetDlgItem(hDlg, IDB_BS_NOTIFY), TRUE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_LEFTTEXT), TRUE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_PUSHLIKE), TRUE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_AUTORADIOBUTTON), TRUE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_LEFT), TRUE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_RIGHT), TRUE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_CENTER), TRUE);
mask = GETCTL_STYLE(o_info->info.c.info) & 0x0000000f;
if ( mask == BS_AUTORADIOBUTTON ) {
CheckDlgButton ( hDlg, IDB_BS_AUTORADIOBUTTON, 1);
}
// set new styles
mask = GETCTL_STYLE(o_info->info.c.info) & 0x00000f00;
if ( (mask & BS_CENTER) == BS_CENTER ) {
CheckDlgButton ( hDlg, IDB_BS_CENTER, 1);
}
else if ( mask & BS_RIGHT ) {
CheckDlgButton ( hDlg, IDB_BS_RIGHT, 1);
}
else {
CheckDlgButton ( hDlg, IDB_BS_LEFT, 1);
}
if ( GETCTL_STYLE(o_info->info.c.info) & BS_NOTIFY ) {
CheckDlgButton ( hDlg, IDB_BS_NOTIFY, 1);
}
if ( GETCTL_STYLE(o_info->info.c.info) & BS_LEFTTEXT ) {
CheckDlgButton ( hDlg, IDB_BS_LEFTTEXT, 1);
}
if ( GETCTL_STYLE(o_info->info.c.info) & BS_PUSHLIKE ) {
CheckDlgButton ( hDlg, IDB_BS_PUSHLIKE, 1);
}
#else
EnableWindow ( GetDlgItem(hDlg, IDB_BS_NOTIFY), FALSE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_LEFTTEXT), FALSE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_PUSHLIKE), FALSE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_AUTORADIOBUTTON), FALSE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_LEFT), FALSE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_RIGHT), FALSE);
EnableWindow ( GetDlgItem(hDlg, IDB_BS_CENTER), FALSE);
if ( mask == BS_AUTORADIOBUTTON ) {
CheckDlgButton ( hDlg, IDB_BS_AUTORADIOBUTTON, 1);
}
#endif
} else if ( id == GBUTTON_OBJ ) {
#if __NT__XX
EnableWindow ( GetDlgItem(hDlg, IDB_BS_LEFT), TRUE );
EnableWindow ( GetDlgItem(hDlg, IDB_BS_RIGHT), TRUE );
EnableWindow ( GetDlgItem(hDlg, IDB_BS_CENTER), TRUE );
mask = GETCTL_STYLE(o_info->info.c.info) & 0x00000f00;
if ( (mask & BS_CENTER) == BS_CENTER ) {
CheckDlgButton ( hDlg, IDB_BS_CENTER, 1);
}
else if ( mask & BS_RIGHT ) {
CheckDlgButton ( hDlg, IDB_BS_RIGHT, 1);
}
else {
CheckDlgButton ( hDlg, IDB_BS_LEFT, 1);
}
#else
EnableWindow ( GetDlgItem(hDlg, IDB_BS_LEFT), FALSE );
EnableWindow ( GetDlgItem(hDlg, IDB_BS_RIGHT), FALSE );
EnableWindow ( GetDlgItem(hDlg, IDB_BS_CENTER), FALSE );
if ( mask != BS_GROUPBOX ) {
WdeWriteTrail("WdeButtonSetDefineInfo: Bad GroupBox mask!");
}
#endif
} else {
WdeWriteTrail("WdeButtonSetDefineInfo: Bad OBJ_ID!");
}
if( check_lefttext ) {
if( GETCTL_STYLE( o_info->info.c.info ) & BS_LEFTTEXT ) {
CheckDlgButton ( hDlg, IDB_BS_LEFTTEXT, 1);
}
}
// do the extended style stuff - its the same for PushButton,
// RadioButton, CheckBox and GroupBox
WdeEXSetDefineInfo ( o_info, hDlg );
}
void WdeButtonGetDefineInfo ( WdeDefineObjectInfo *o_info, HWND hDlg )
{
BOOL check_lefttext;
BOOL auto_checked;
OBJ_ID id;
DialogStyle mask;
id = o_info->obj_id;
mask = 0;
check_lefttext = FALSE;
auto_checked = FALSE;
if ( id == PBUTTON_OBJ ) {
#if __NT__XX
if ( IsDlgButtonChecked ( hDlg, IDB_BS_OWNERDRAW ) ) {
mask = BS_OWNERDRAW;
} else {
if ( IsDlgButtonChecked ( hDlg, IDB_BS_DEFPUSHBUTTON ) ) {
mask = BS_DEFPUSHBUTTON;
} else if ( IsDlgButtonChecked ( hDlg, IDB_BS_PUSHBUTTON ) ) {
mask = BS_PUSHBUTTON;
} else {
WdeWriteTrail("WdeButtonGetDefineInfo: Bad Push style!");
return;
}
// check for new styles that may be set
if ( IsDlgButtonChecked ( hDlg, IDB_BS_BITMAP ) ) {
mask |= BS_BITMAP;
}
if ( IsDlgButtonChecked ( hDlg, IDB_BS_ICON ) ) {
mask |= BS_ICON;
}
if ( IsDlgButtonChecked ( hDlg, IDB_BS_TEXT ) ) {
mask |= BS_TEXT;
}
if ( IsDlgButtonChecked ( hDlg, IDB_BS_MULTILINE ) ) {
mask |= BS_MULTILINE;
}
if ( IsDlgButtonChecked ( hDlg, IDB_BS_NOTIFY ) ) {
mask |= BS_NOTIFY;
}
if ( IsDlgButtonChecked ( hDlg,IDB_BS_TOP ) ) {
mask |= BS_TOP;
} else if ( IsDlgButtonChecked ( hDlg,IDB_BS_BOTTOM ) ) {
mask |= BS_BOTTOM;
} else {
mask |= BS_VCENTER;
}
if ( IsDlgButtonChecked ( hDlg,IDB_BS_RIGHT ) ) {
mask |= BS_RIGHT;
} else if ( IsDlgButtonChecked ( hDlg,IDB_BS_LEFT ) ) {
mask |= BS_LEFT;
} else {
mask |= BS_CENTER;
}
}
#else
if ( IsDlgButtonChecked ( hDlg, IDB_BS_PUSHBUTTON ) ) {
mask = BS_PUSHBUTTON;
} else if ( IsDlgButtonChecked ( hDlg, IDB_BS_DEFPUSHBUTTON ) ) {
mask = BS_DEFPUSHBUTTON;
} else if ( IsDlgButtonChecked ( hDlg, IDB_BS_OWNERDRAW ) ) {
mask = BS_OWNERDRAW;
} else {
WdeWriteTrail("WdeButtonGetDefineInfo: Bad Push style!");
return;
}
#endif
} else if ( id == CBUTTON_OBJ ) {
check_lefttext = TRUE;
auto_checked = IsDlgButtonChecked ( hDlg, IDB_BS_AUTOCHECKBOX );
if ( IsDlgButtonChecked ( hDlg, IDB_BS_3STATE ) ) {
if ( auto_checked ) {
mask = BS_AUTO3STATE;
} else {
mask = BS_3STATE;
}
} else {
if ( auto_checked ) {
mask = BS_AUTOCHECKBOX;
} else {
mask = BS_CHECKBOX;
}
}
#if __NT__XX
// set the new styles
if ( IsDlgButtonChecked ( hDlg, IDB_BS_NOTIFY ) ) {
mask |= BS_NOTIFY;
}
if ( IsDlgButtonChecked ( hDlg, IDB_BS_PUSHLIKE ) ) {
mask |= BS_PUSHLIKE;
}
if ( IsDlgButtonChecked ( hDlg, IDB_BS_LEFTTEXT ) ) {
mask |= BS_LEFTTEXT;
}
if ( IsDlgButtonChecked ( hDlg,IDB_BS_RIGHT ) ) {
mask |= BS_RIGHT;
} else if ( IsDlgButtonChecked ( hDlg,IDB_BS_CENTER ) ) {
mask |= BS_CENTER;
} else {
mask |= BS_LEFT;
}
#endif
} else if ( id == RBUTTON_OBJ ) {
check_lefttext = TRUE;
auto_checked = IsDlgButtonChecked ( hDlg, IDB_BS_AUTORADIOBUTTON );
if ( auto_checked ) {
mask = BS_AUTORADIOBUTTON;
} else {
mask = BS_RADIOBUTTON;
}
#if __NT__XX
if ( IsDlgButtonChecked ( hDlg, IDB_BS_NOTIFY ) ) {
mask |= BS_NOTIFY;
}
if ( IsDlgButtonChecked ( hDlg, IDB_BS_PUSHLIKE ) ) {
mask |= BS_PUSHLIKE;
}
if ( IsDlgButtonChecked ( hDlg, IDB_BS_LEFTTEXT ) ) {
mask |= BS_LEFTTEXT;
}
if ( IsDlgButtonChecked ( hDlg,IDB_BS_RIGHT ) ) {
mask |= BS_RIGHT;
} else if ( IsDlgButtonChecked ( hDlg,IDB_BS_CENTER ) ) {
mask |= BS_CENTER;
} else {
mask |= BS_LEFT;
}
#endif
} else if ( id == GBUTTON_OBJ ) {
mask = BS_GROUPBOX;
#if __NT__XX
if ( IsDlgButtonChecked ( hDlg,IDB_BS_RIGHT ) ) {
mask |= BS_RIGHT;
} else if ( IsDlgButtonChecked ( hDlg,IDB_BS_CENTER ) ) {
mask |= BS_CENTER;
} else {
mask |= BS_LEFT;
}
#endif
} else {
WdeWriteTrail("WdeButtonGetDefineInfo: Bad OBJ_ID!");
return;
}
if (check_lefttext) {
if ( IsDlgButtonChecked ( hDlg, IDB_BS_LEFTTEXT ) ) {
mask |= BS_LEFTTEXT;
}
}
SETCTL_STYLE( o_info->info.c.info,
( GETCTL_STYLE(o_info->info.c.info) & 0xffff0000 ) | mask );
// set the extended mask - same for PushButton, RadioButton
// CheckBox and GroupBox
WdeEXGetDefineInfo ( o_info, hDlg );
return;
}
LRESULT WINEXPORT WdeButtonSuperClassProc( HWND hWnd, UINT message,
WPARAM wParam,
volatile LPARAM lParam )
{
if ( !WdeProcessMouse ( hWnd, message, wParam, lParam ) ) {
return( CallWindowProc ( WdeOriginalButtonProc,
hWnd, message, wParam, lParam ) );
}
return ( FALSE );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -