VC中使用Picture Control控件作为指示灯

刚刚接触MFC编程,对初步学习的东西总结一下:

Picture Control控件用作指示灯

在网络通信、串口通信等编程过程中经常会用到Picture Control组件来显示图标,可以用显示的图标颜色(红、绿、灰)来表示通信状态。首先,需准备好红、绿、灰灯的ICO资源,然后导入到VC/VS的资源视图中,并将ID号修改,比如现在有三组ICO资源,ID号分别为IDI_ICON_LEDRED、ID_ICON_LEDGREEN、IDI_ICON_LEDGRAY。然后,将Picture Control的Type属性设置为Icon。最后就可以在程序里实现了。

在程序的OnInitDialog()事件中进行初始化,代码如下,

m_hIconLedRed= (HICON)LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON_LEDRED),IMAGE_ICON,40,40,LR_DEFAULTCOLOR);

m_hIconLedGreen= (HICON)LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON_LEDGREEN),IMAGE_ICON,40,40,LR_DEFAULTCOLOR);

m_hIconLedGray= (HICON)LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON_LEDGRAY),IMAGE_ICON,40,40,LR_DEFAULTCOLOR);

m_cstatSerialLed.SetIcon(m_hIconLedGray); //初始化为灰色。

m_cstatSockStateLed.SetIcon(m_hIconLedGray);//初始化为灰色。

然后在以后程序中要用到则可直接使用SetIcon来实现。比如串口成功打开后,可使用m_cstatSockStateLed.SetIcon(m_hIconLedGreen);来使指示灯显示绿色。

其中m_hIconLedRed、m_hIconLedGreen、m_hIconLedGray在头文件中进行定义。

HICON m_hIconLedRed;

HICON m_hIconLedGreen;

HICON m_hIconLedGray;

 

其中m_cstatSerialLed、m_cstatSockStateLed是为用作显示串口状态、网口状态的Picture Control组件所添加的变量值。

这里对LoadImage这个函数说明一下:

该函数用作装载图标、光标或位图。

函数原型:HANDLE LoadImage(

HINSTANCE hinst,

LPCTSTR lpszName,

UINT uType,

int cxDesired,

int cyDesired,

UINT fuLoad

);

HINSTANCE---------包含所需要图片的实例的句柄。

LPCSTR--------------图片所在路径及文件名。如果加载资源,此参数为资源号,如果加载文件,则为文件名(绝对路径)。

UINT-------------------图片类型。

int-----------------------图片宽度(像素)。

int-----------------------图片高度。

UINT-------------------load flags

 

       AfxGetInstanceHandle():用来获取实例句柄。

       MAKEINTRESOURCE():是把一个"数字形ID",转化为"字符串".但是执行前后,输入的数据的内容和长度是不变的!它只不过就是C语言里面"强制类型转换"而已.

 

 

猜你喜欢

转载自blog.csdn.net/daofengdeba/article/details/13277233
今日推荐