小知识点总结三
来源:互联网 发布:巧克力品牌排行榜知乎 编辑:程序博客网 时间:2024/05/16 18:39
1 加载资源位图
1 获取程序实例
HINSTANCE m_hInst;
m_hInst=AfxGetInstanceHandle(); //获取程序实例
2 加载图像
HBITMAP m_bmpTank;
HBITMAP m_bmpBomb;
m_bmpTank=LoadBitmap(m_hInst,MAKEINTRESOURCE(IDB_TANK));
m_bmpBomb=LoadBitmap(m_hInst,MAKEINTRESOURCE(IDB_BOMB));
3 将位图选入DC中
HDC m_TankDC;
HDC m_BombDC;
m_TankDC=CreateCompatibleDC(pDC->m_hDC);
m_BombDC=CreateCompatibleDC(pDC->m_hDC);
//选择图像
SelectObject(m_TankDC,m_bmpTank);
SelectObject(m_BombDC,m_bmpBomb);
4 画图
BitBlt(pTankDC->m_hDC,0,0,TANK_WIDTH,TANK_WIDTH,m_TankDC,0,0,SRCCOPY);
TransparentBlt2(pDC->m_hDC,0,0,nWidth,nHeight,
m_TankDC, 0,0,nWidth,nHeight,RGB(255,0,0));
2 移动Pictutr控件
1 获得Picture的DC
CDC* m_pMapDC=GetDlgItem(IDC_MAP)->GetDC();
CDC* m_pTankDC=GetDlgItem(IDC_TANK)->GetDC();
2 将Picture控件移到指定矩形区域
//设置客户区矩形
m_ClientRect[0]=CRect(20,10,7*WIDTH+20,WIDTH+10); //IDC_MAP
m_ClientRect[1]=CRect(20,50,NUM*WIDTH+20,NUM*WIDTH+50); //IDC_FIELD
m_ClientRect[2]=CRect(260,12,TANK_WIDTH+260,TANK_WIDTH+12); //IDC_TNAK
//移动窗口
GetDlgItem(IDC_MAP)->MoveWindow(m_ClientRect[0]); //IDC_MAP
GetDlgItem(IDC_FIELD)->MoveWindow(m_ClientRect[1]); //IDC_FIELD
GetDlgItem(IDC_TANK)->MoveWindow(m_ClientRect[2]);
3 加载光标
1 加载光标
1)从文件加载光标
HCURSOR m_hCursor;
//Load the Cursor
m_hCursor=LoadCursorFromFile("res\\cursor.ani"); //.cur or .ani
2)从程序自定义的资源光标加载
m_hCursor=AfxGetApp()->LoadCursor(IDR_CURSOR);
3)从默认资源加载
m_hCursor=LoadCursor(NULL,IDC_CROSS);
2 设置光标
响应WM_SETCURSOR消息,显示适当的光标形状
if(m_hCursor)
{
SetCursor(m_hCursor);
return TRUE;
}
else
return CDialog::OnSetCursor(pWnd, nHitTest, message);
4 播放背景音乐
构造函数:
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
初始化:
HICON icon=LoadIcon(AfxGetInstanceHandle(),(LPCTSTR)IDR_MAINFRAME);
SetIcon(icon,TRUE);
SetIcon(icon,FALSE);
MCI_OPEN_PARMS mciOpen;
//背景音乐
mciOpen.lpstrDeviceType=0;
mciOpen.lpstrElementName="./res/music.mp3";
mciSendCommand(NULL,MCI_OPEN, MCI_OPEN_ELEMENT,(DWORD)&mciOpen);
MCI_PLAY_PARMS mciPlay;
mciPlay.dwFrom = 0;
mciSendCommand(mciOpen.wDeviceID,MCI_PLAY,MCI_NOTIFY | MCI_FROM,(DWORD)&mciPlay);
SetTimer(1,210000,NULL); //用来循环播放背景音乐
OnTimer函数:
OnTimer(UINT nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(nIDEvent==1)
{
MCI_PLAY_PARMS mciPlay;
mciPlay.dwFrom = 0;
mciSendCommand(mciOpen.wDeviceID,MCI_PLAY,MCI_NOTIFY | MCI_FROM,(DWORD)&mciPlay);
}
CDialog::OnTimer(nIDEvent);
}
控制背景音乐的播放:
void CMazeDlg::OnBnClickedBkmusic()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
if(m_bBkMusic)
{
MCI_PLAY_PARMS mciPlay;
mciPlay.dwFrom = 0;
mciSendCommand(mciOpen.wDeviceID,MCI_PLAY,MCI_NOTIFY | MCI_FROM,(DWORD)&mciPlay);
SetTimer(1,210000,NULL);
}
else
{
KillTimer(1);
mciSendCommand(mciOpen.wDeviceID,MCI_STOP,MCI_WAIT,NULL);
}
}
5 线程操作
CWinThread *m_Thread;
UINT Start(LPVOID pPar); //开始
m_Thread=AfxBeginThread(Start,GetSafeHwnd());
m_Thread->SuspendThread();
m_Thread->SuspendThread();
- 小知识点总结三
- 每天一个小知识点9(jQuer总结三)
- 每天一个小知识点12(jQueryMobile总结三)
- 每天一个小知识点15(Angularjs总结三)
- iOS小知识点(三)
- .net小知识点总结
- DataGridView小知识点总结
- GDI+ 小知识点总结
- MYSQL小知识点总结
- 【android】小知识点总结
- 前端小知识点总结
- 小知识点总结
- 小知识点总结
- Qt 小知识点总结
- java小知识点总结
- iOS小知识点总结
- python小知识点总结
- Unity3D-小知识点总结
- JFreeChart相关类中文说明
- sdut 2253 分数加减法
- 数据结构--数组-三对角矩阵
- 十六进制以内任意进制数转十进制
- 教你如何破解你家附近的wep wpa wpa2加密方式的密码~~~转的懒得写了。
- 小知识点总结三
- Unity 物理引擎学习笔记。。很基础。很实用哦。。。
- IT人士,释放压力知多少?
- 异常备忘:java.lang.UnsupportedClassVersionError: Bad version number in .class file
- linux touch命令参数及用法详解---linux修改文件的时间
- 图像:VC+DirectShow对视频进行图片处理
- poj1789 Truck History (最小生成树)
- SQL行转列的一个例子
- Unity调用Android。。。哈哈。。可以干坏事啦。。。。。。