📄 uistatus.c
字号:
lpUIExtra->uiStatus.sz.cx = BITMAPX * 6 ;
lpUIExtra->uiStatus.sz.cy = BITMAPY ;
if ( RegOpenKeyEx(HKEY_LOCAL_MACHINE,
_T("Software\\freepy"),
0,
KEY_READ,
&hKey) == ERROR_SUCCESS ){
if( RegQueryValueEx( hKey,
_T("Position"),
NULL,
NULL,
(LPBYTE)&dwPosition,
&dwData) == ERROR_SUCCESS ){
lpUIExtra->uiStatus.pt.x = (int)(short) LOWORD(dwPosition);
lpUIExtra->uiStatus.pt.y = (int)(short) HIWORD(dwPosition);
fFlag = FALSE;
}
RegCloseKey(hKey);
}
if(fFlag){
SystemParametersInfo(SPI_GETWORKAREA,
0,
&screenrc,
0);
lpUIExtra->uiStatus.pt.x = screenrc.left + 10;
lpUIExtra->uiStatus.pt.y = screenrc.bottom - lpUIExtra->uiStatus.sz.cy - 5;
}
lpUIExtra->uiStatus.hWnd =
CreateWindowEx( 0,
STATUSCLASSNAME,NULL,
WS_DISABLED | WS_POPUP,
lpUIExtra->uiStatus.pt.x,
lpUIExtra->uiStatus.pt.y,
lpUIExtra->uiStatus.sz.cx,
lpUIExtra->uiStatus.sz.cy,
hUIWnd,NULL,hInst,NULL);
SetWindowLong(lpUIExtra->uiStatus.hWnd,FIGWL_SVRWND,(DWORD)hUIWnd);
}
ShowWindow(lpUIExtra->uiStatus.hWnd,SW_SHOWNOACTIVATE);
return;
}
DWORD CheckButtonPos( HWND hStatusWnd, LPPOINT lppt)
{
POINT pt;
RECT rc;
DWORD dwButton = 0;
if (lppt)
{
pt = *lppt;
ScreenToClient(hStatusWnd,&pt);
GetClientRect(hStatusWnd,&rc);
if (!PtInRect(&rc,pt))
return 0;
if(pt.x < BITMAPX) {
dwButton |= BUTTONMENU;
}
else if (pt.x < BITMAPCHINESEDES) {
dwButton |= BUTTONPY;
}
else if (pt.x < BITMAPFULLDES) {
dwButton |= BUTTONCHINESE;
}
else if (pt.x < BITMAPPUNCTDES) {
dwButton |= BUTTONFULL;
}
else if (pt.x < BITMAPPUNCTDES + BITMAPX) {
dwButton |= BUTTONPUNCT;
}
}
return dwButton;
}
void PaintStatus( HWND hStatusWnd,HDC hDC,DWORD dwButton )
{
HIMC hIMC;
LPINPUTCONTEXT lpIMC;
HDC hMemDC;
HBITMAP hBmpOld;
HWND hSvrWnd;
hSvrWnd = (HWND)GetWindowLong(hStatusWnd,FIGWL_SVRWND);
if (hIMC = (HIMC)GetWindowLong(hSvrWnd,IMMGWL_IMC))
{
lpIMC = ImmLockIMC(hIMC);
hMemDC = CreateCompatibleDC(hDC);
hBmpOld = SelectObject(hMemDC,hBmpStatus);
if( (dwButton & BUTTONMENU) || !dwButton){
if( dwButton & BUTTONPUSH)
BitBlt(hDC,0,0,BITMAPX,BITMAPY,hMemDC,0,BITMAPY,SRCCOPY);
else
BitBlt(hDC,0,0,BITMAPX,BITMAPY,hMemDC,0,0,SRCCOPY);
}
if( (dwButton & BUTTONPY) || !dwButton){
if( dwButton & BUTTONPUSH)
BitBlt(hDC,BITMAPX,0,BITMAPX*2,BITMAPY,hMemDC,BITMAPX,BITMAPY,SRCCOPY);
else
BitBlt(hDC,BITMAPX,0,BITMAPX*2,BITMAPY,hMemDC,BITMAPX,0,SRCCOPY);
}
if( (dwButton & BUTTONCHINESE) || !dwButton){
if(lpIMC->fOpen){
if( dwButton & BUTTONPUSH)
BitBlt(hDC,BITMAPCHINESEDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPCHINESESRC,BITMAPY,SRCCOPY);
else
BitBlt(hDC,BITMAPCHINESEDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPCHINESESRC,0,SRCCOPY);
}
else{
if( dwButton & BUTTONPUSH)
BitBlt(hDC,BITMAPCHINESEDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPCHINESESRC + BITMAPX,BITMAPY,SRCCOPY);
else
BitBlt(hDC,BITMAPCHINESEDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPCHINESESRC + BITMAPX,0,SRCCOPY);
}
}
if( (dwButton & BUTTONFULL) || !dwButton){
if(wConversionSet & CONVERSION_SET_FULLSHAPE) {
if( dwButton & BUTTONPUSH)
BitBlt(hDC,BITMAPFULLDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPFULLSRC,BITMAPY,SRCCOPY);
else
BitBlt(hDC,BITMAPFULLDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPFULLSRC,0,SRCCOPY);
}
else{
if( dwButton & BUTTONPUSH)
BitBlt(hDC,BITMAPFULLDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPFULLSRC + BITMAPX,BITMAPY,SRCCOPY);
else
BitBlt(hDC,BITMAPFULLDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPFULLSRC + BITMAPX,0,SRCCOPY);
}
}
if( (dwButton & BUTTONPUNCT) || !dwButton){
if(wConversionSet & CONVERSION_SET_PUNCT) {
if( dwButton & BUTTONPUSH)
BitBlt(hDC,BITMAPPUNCTDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPPUNCTSRC,BITMAPY,SRCCOPY);
else
BitBlt(hDC,BITMAPPUNCTDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPPUNCTSRC,0,SRCCOPY);
}
else{
if( dwButton & BUTTONPUSH)
BitBlt(hDC,BITMAPPUNCTDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPPUNCTSRC + BITMAPX,BITMAPY,SRCCOPY);
else
BitBlt(hDC,BITMAPPUNCTDES,0,BITMAPX,BITMAPY,hMemDC,BITMAPPUNCTSRC + BITMAPX,0,SRCCOPY);
}
}
SelectObject(hMemDC,hBmpOld);
DeleteDC(hMemDC);
ImmUnlockIMC(hIMC);
}
}
void UpdateStatusWindow(LPUIEXTRA lpUIExtra)
{
if (IsWindow(lpUIExtra->uiStatus.hWnd)) {
InvalidateRect(lpUIExtra->uiStatus.hWnd,NULL,FALSE);
}
}
BOOL WINAPI SetDialogProc(
HWND hWnd ,
UINT message ,
WPARAM wParam ,
LPARAM lParam )
{
switch(message) {
case WM_INITDIALOG:
CheckDlgButton(hWnd,IDC_CHECKSORT,
(wConversionSet & CONVERSION_SET_SORT)? BST_CHECKED :BST_UNCHECKED );
CheckDlgButton(hWnd,IDC_CHECKFOLLOW,
(wConversionSet & CONVERSION_SET_FOLLOW)? BST_CHECKED :BST_UNCHECKED );
CheckDlgButton(hWnd,IDC_CHECKGBK,
(wConversionSet & CONVERSION_SET_GBK)? BST_CHECKED :BST_UNCHECKED );
CheckDlgButton(hWnd,IDC_CHECKFUZZYC,
(wConversionSet & CONVERSION_SET_FUZZYC)? BST_CHECKED :BST_UNCHECKED );
CheckDlgButton(hWnd,IDC_CHECKFUZZYN,
(wConversionSet & CONVERSION_SET_FUZZYN)? BST_CHECKED :BST_UNCHECKED );
CheckDlgButton(hWnd,IDC_CHECKFUZZYH,
(wConversionSet & CONVERSION_SET_FUZZYH)? BST_CHECKED :BST_UNCHECKED );
CheckDlgButton(hWnd,IDC_CHECKFUZZYB,
(wConversionSet & CONVERSION_SET_FUZZYB)? BST_CHECKED :BST_UNCHECKED );
CheckDlgButton(hWnd,IDC_CHECKSHAPE,
(wConversionSet & CONVERSION_SET_SHAPE)? BST_CHECKED :BST_UNCHECKED );
break;
case WM_COMMAND:
switch(wParam) {
case IDC_CHECKFUZZYC:
break;
case IDC_CHECKFUZZYN:
break;
case IDC_CHECKFUZZYH:
break;
case IDC_CHECKSORT:
break;
case IDOK:
if(IsDlgButtonChecked(hWnd,IDC_CHECKSORT) == BST_CHECKED)
wConversionSet |= CONVERSION_SET_SORT;
else
wConversionSet &= ~CONVERSION_SET_SORT;
if(IsDlgButtonChecked(hWnd,IDC_CHECKFOLLOW) == BST_CHECKED)
wConversionSet |= CONVERSION_SET_FOLLOW;
else
wConversionSet &= ~CONVERSION_SET_FOLLOW;
if(IsDlgButtonChecked(hWnd,IDC_CHECKGBK) == BST_CHECKED)
wConversionSet |= CONVERSION_SET_GBK;
else
wConversionSet &= ~CONVERSION_SET_GBK;
if(IsDlgButtonChecked(hWnd,IDC_CHECKFUZZYC) == BST_CHECKED)
wConversionSet |= CONVERSION_SET_FUZZYC;
else
wConversionSet &= ~CONVERSION_SET_FUZZYC;
if(IsDlgButtonChecked(hWnd,IDC_CHECKFUZZYN) == BST_CHECKED)
wConversionSet |= CONVERSION_SET_FUZZYN;
else
wConversionSet &= ~CONVERSION_SET_FUZZYN;
if(IsDlgButtonChecked(hWnd,IDC_CHECKFUZZYH) == BST_CHECKED)
wConversionSet |= CONVERSION_SET_FUZZYH;
else
wConversionSet &= ~CONVERSION_SET_FUZZYH;
if(IsDlgButtonChecked(hWnd,IDC_CHECKFUZZYB) == BST_CHECKED)
wConversionSet |= CONVERSION_SET_FUZZYB;
else
wConversionSet &= ~CONVERSION_SET_FUZZYB;
if(IsDlgButtonChecked(hWnd,IDC_CHECKSHAPE) == BST_CHECKED)
wConversionSet |= CONVERSION_SET_SHAPE;
else
wConversionSet &= ~CONVERSION_SET_SHAPE;
EndDialog(hWnd,TRUE);
break;
case IDCANCEL:
EndDialog(hWnd,TRUE);
break;
default:
return FALSE;
break;
}
break;
default:
return FALSE;
break;
}
return TRUE;
}
BOOL WINAPI AboutDialogProc(
HWND hWnd ,
UINT message ,
WPARAM wParam ,
LPARAM lParam )
{
switch(message) {
case WM_INITDIALOG:
break;
case WM_COMMAND:
switch(wParam) {
case IDOK:
case IDCANCEL:
EndDialog(hWnd,TRUE);
break;
default:
return FALSE;
break;
}
break;
default:
return FALSE;
break;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -