首页 > 其他 > 详细

案例2

时间:2020-10-17 18:57:28      阅读:22      评论:0      收藏:0      [点我收藏+]

显示窗口透明


void ShowWnd(){  //Win32APi
	//创建窗口
	//创建窗口 宽 高 单位:px 像素
	HWND hwnd = initgraph(GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));

	//设置窗口风格  去除标题
	SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) - WS_CAPTION);

	//设置窗口位置
	SetWindowPos(hwnd, HWND_TOPMOST, 500, 150, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), SWP_SHOWWINDOW);

	//设置为透明 
	LONG WindowLong = GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED;

	//设置窗口风格
	SetWindowLong(hwnd, GWL_EXSTYLE, WindowLong);

	//背景修改为黑色
	SetLayeredWindowAttributes(hwnd, RGB(0, 0, 0), 0, LWA_COLORKEY);

批量加载图片到img数组中

void InitImg(){
	for (int i = 0; i < 10; i++){
		loadimage(&img[i],"jpg" ,MAKEINTRESOURCE(102+i), 30, 30);
		loadimage(&img_Big[i], "jpg", MAKEINTRESOURCE(102 + i), 300, 200);
	}
}

播放音乐

  1. SND_RESOURCE

    加载资料内容

  2. SND_ASYNC

    异步播放:就是可以一边播放音乐 一边显示做其它的操作

  3. MAKEINTRESOURCE(IDR_WAVE1)

    播放那个资源

  4. SND_LOOP

    循环播放

void PlayMusic(){
	PlaySound(MAKEINTRESOURCE(IDR_WAVE1), NULL, SND_RESOURCE | SND_ASYNC|SND_LOOP);
}

动画

清屏 cleardevice()

void AniMation(){
	for (int i = 0; i < 46; i++){
		putimage(Pos[i].x, Pos[i].y, &img[i % 10]);
		Sleep(100);
	}
	int add = 0;
	while (1){
		cleardevice();
		for (int i = 0; i < 46; i++){
			putimage(Pos[i].x, Pos[i].y, &img[(i + add) % 10]);
		}
		putimage(275, 335, &img_Big[add % 10]);
		add++;
		Sleep(1000);
	}
}

分文件

将系统头文件/定义函数/定义结构体/写到新创建的头文件中.

将函数的完整内容写在另一个c/c++文件中, main文件中只保留要运行的函数.

案例2

原文:https://www.cnblogs.com/xxxbx/p/13832060.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!