⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conv_icon.cpp

📁 This software performs code conversion of Chinese characters, including GB2312/GBK and BIG5. It a
💻 CPP
字号:
// conv_icon.cpp

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include "msc.h"
#include "res.h"
#include "resource.h"
#include "conv_icon.h"



////////////////////////////////////////
//     儊僀儞僟僀傾儘僌偺忬嫷昞帵     //
////////////////////////////////////////



static int StatusIconArray [ SRC_DST_FILE_NELEM ] ;



// 忬嫷昞帵偺忬懺傪愝掕
int SetStatusIcon ( HWND hWnd, int nIndex, int nStatus ) {

   int nPrevStatus = StatusIconArray [ nIndex ] ;
   StatusIconArray [ nIndex ] = nStatus ;

   if ( nPrevStatus != nStatus ) {
      HWND hCtrl = GetDlgItem ( hWnd, IDC_STATIC_STATUS_MIN + nIndex ) ;
      InvalidateRect ( hCtrl, NULL, 0 ) ;
      UpdateWindow ( hCtrl ) ;
      return 1 ;
   }

   return 0 ;
}



// 忬嫷昞帵傪昤夋
int DrawStatusIcon ( HWND hWnd, DRAWITEMSTRUCT *pDrawItem, int nIndex ) {

   RECT Rect = pDrawItem->rcItem ;     // 傾僀僥儉偺僒僀僘
   HDC hDC = pDrawItem->hDC ;          // 僨僶僀僗僐儞僥僉僗僩

   // 攚宨傪昤夋
   HBRUSH hBrush = CreateSolidBrush ( GetBkColor ( hDC ) ) ;
   FillRect ( hDC, & Rect, hBrush ) ;
   DeleteObject ( hBrush ) ;

   // 傾僀僐儞偺僒僀僘
   int nSize = __min ( Rect.right - Rect.left, Rect.bottom - Rect.top ) ;

   // 傾僀僐儞傪慖戰
   int nIconId ;
   switch ( StatusIconArray [ nIndex ] ) {
      case STATUS_ICON_READY :   nIconId = IDI_ICON_STATUS_READY ; break ;
      case STATUS_ICON_NOW :     nIconId = IDI_ICON_STATUS_NOW ; break ;
      case STATUS_ICON_SUCCESS : nIconId = IDI_ICON_STATUS_SUCCESS ; break ;
      case STATUS_ICON_FAILURE : nIconId = IDI_ICON_STATUS_FAILURE ; break ;
      default :                  nIconId = IDI_ICON_STATUS_READY ; break ;    // dummy
   }

   // 傾僀僐儞傪儘乕僪
   HICON hIcon = (HICON) LoadImageEx ( nIconId, IMAGE_ICON, nSize, nSize, 0 ) ;
   if ( ! hIcon ) hIcon = (HICON) LoadImageEx ( nIconId, IMAGE_ICON, 32, 32, 0 ) ;
   if ( ! hIcon ) hIcon = (HICON) LoadImageEx ( nIconId, IMAGE_ICON, 0, 0, 0 ) ;

   // 傾僀僐儞傪昤夋
   if ( hIcon ) {
      int nLeft = Rect.left + ( ( Rect.right - Rect.left ) - nSize ) / 2 ;
      int nTop = Rect.top + ( ( Rect.bottom - Rect.top ) - nSize ) / 2 ;
      DrawIconEx ( hDC, nLeft, nTop, hIcon, nSize, nSize, 0, NULL, DI_NORMAL ) ;
      DestroyIcon ( hIcon ) ;
   }

   return 0 ;
}



////////////////////////////////////////
//              僨僶僢僌              //
////////////////////////////////////////



// 儊僀儞僟僀傾儘僌偺傾僀僥儉偺惍崌惈傪僠僃僢僋
int IsDlgItemIdConformable ( void ) {

   if ( ( IDC_BUTTON_SRC_MIN - IDC_EDIT_SRC_MIN ) != SRC_DST_FILE_NELEM ) return 0 ;
   if ( ( IDC_STATIC_STATUS_MIN - IDC_BUTTON_SRC_MIN ) != SRC_DST_FILE_NELEM ) return 0 ;
   if ( ( IDC_EDIT_DST_MIN - IDC_STATIC_STATUS_MIN ) != SRC_DST_FILE_NELEM ) return 0 ;
   if ( ( IDC_BUTTON_DST_MIN - IDC_EDIT_DST_MIN ) != SRC_DST_FILE_NELEM ) return 0 ;

   return 1 ;
}



// 僐儞僩儘乕儖偺僒僀僘傪昞帵
int DisplayControlSize ( HWND hWnd, int nId ) {

   RECT Rect ;
   GetWindowRect ( GetDlgItem ( hWnd, nId ), & Rect ) ;

   char buffer [ 0x100 ] ;
   int x = Rect.right - Rect.left ;
   int y = Rect.bottom - Rect.top ;
   sprintf ( buffer, "(ID:%d)  x:%d, y:%d\n", nId, x, y ) ;

   MessageBoxA ( hWnd, buffer, "", MB_OK ) ;

   return 0 ;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -