您的位置:首页 > 编程语言 > C语言/C++

基于VC++ PNG按钮的实现【5】

2009-09-23 13:49 281 查看
graph.DrawImage(m_pImageNum,20*5,0,140,0,14,23,UnitPixel);

//

该函数从
m_pImageClock

中剪切指定
rect

中的像素
draw

到指定位置
S

graph.DrawImage(m_pImageNum,20*6,0,14*(SystemTime.wSecond/10),

0,14,23,UnitPixel); //

该函数从
m_pImageClock

中剪切指定
rect

中的像素
draw

到指定位
/////



graph.DrawImage(m_pImageNum,20*7,0,14*(SystemTime.wSecond%10),

0,14,23,UnitPixel); //

该函数从
m_pImageClock

中剪切指定
rect

中的像素
draw

到指定位
/////



//

绘画结束

//

设置窗体的透明特性

SIZE sizeWindow={m_BakWidth,m_BakHeight};

POINT ptSrc={0,0};

DWORD dwExStyle=GetWindowLong(m_hWnd,GWL_EXSTYLE);//GWL_EXSTYLE;//

获得扩展窗口
////

风格。

if((dwExStyle&0x80000)!=0x80000)//dwExStyle&0x80000

显示
alpha

透明通道,如
//////


0x80000

窗体为透明,否则设置为透明

SetWindowLong(m_hWnd,GWL_EXSTYLE,dwExStyle^0x80000);

BOOL bRet=FALSE;

//The UpdateLayeredWindow function updates the position, size, shape, content, and //translucency of a layered window.

//

刷新窗口函数

bRet= UpdateLayeredWindow( m_hWnd,hdcScreen,&ptWinPos,

&sizeWindow,m_hdcMemory,&ptSrc,0,&m_Blend,2);

//

释放环境

graph.ReleaseHDC(m_hdcMemory);

::ReleaseDC(m_hWnd,hdcScreen);

hdcScreen=NULL;

::ReleaseDC(m_hWnd,hdcTemp);

hdcTemp=NULL;

DeleteObject(hBitMap);

DeleteDC(m_hdcMemory);

m_hdcMemory=NULL;

return bRet;

}

void CGDIPClockDlg::OnTimer(UINT nIDEvent)

{

// TODO: Add your message handler code here and/or call default

UpdateClockDisplay();

CDialog::OnTimer(nIDEvent);

}

void CGDIPClockDlg::OnRButtonUp(UINT nFlags, CPoint point)

{

// TODO: Add your message handler code here and/or call default

CDialog::OnRButtonUp(nFlags, point);

}

void CGDIPClockDlg::OnLButtonDown(UINT nFlags, CPoint point)

{

//

禁止显示移动矩形窗体框

::SystemParametersInfo(SPI_SETDRAGFULLWINDOWS,TRUE,NULL,0);

//

非标题栏移动整个窗口

SendMessage(WM_SYSCOMMAND,0xF012,0);

PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));

CDialog::OnLButtonDown(nFlags, point);

}

5

结语

以上,介绍了在
Windows

下采用
VC++

进行
PNG

按钮的实现,并结合实例进行了实际运用说明。在传统的
DOS

环境中,要在打印机上打印一幅图时一件非常复杂的事情,用户必须根据打印机类型和指令规则向打印机输入数据。而
Windows

则提供
图形设备接口
GDI

,它是
Graphics Device Interface

的缩写。使得用户直接利用系统的
GDI

函数就能方便实现输入和输出,而不必关心与系统相连的外部设备类型。我们利用
GDI

所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作,能够方便的绘制漂亮的图形界面。
[4]

参 考 文 献

[1
]乔林,杨志刚等.Visual C++
6.0
高级编程技术[M
].
北京:中国铁道出版社,2000.

[2
]刘长明,杨工明.Visual C++

实战与提高[M
].
北京:中国铁道出版社,2001.

[3
]Jon Bate

s
·
Tim Tompkins.
实用Visual C++
6.0
教程[M
].
北京:清华大学出版社,2000.

[4
]郑阿奇,丁有何,郑进,周怡君.Visual C++
6.0
实用教程(第三版)[M
].
北京:电子工业出版社,2007.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: