《Windows程序设计》之鼠标1

	//改变窗口大小时会触发,由于我们设置了窗口类的style为CS_HREDRAW|CS_VREDRAW,所以当改变大小后,也会触发重绘WM_PAINT
	case WM_SIZE:
		//重新计算小格子的大小
		cxBlock=LOWORD(lParam)/DIVISIONS;
		cyBlock=HIWORD(lParam)/DIVISIONS;
		return 0;
		//点击左键时触发
	case WM_LBUTTONDOWN:
		//获取x,y.
		x=LOWORD(lParam)/cxBlock;
		y=HIWORD(lParam)/cyBlock;
		if(x<DIVISIONS && y<DIVISIONS)
		{
			//改变点中的格子标志(^为异或运算,两次异或就还原)
			fState[x][y]^=1;
			rect.left=x*cxBlock;
			rect.top=y*cyBlock;
			rect.right=(x+1)*cxBlock;
			rect.bottom=(y+1)*cyBlock;
			//重绘(触发WM_PAINT)选中的格子
			InvalidateRect(hwnd,&rect,FALSE);
		}
		else
			MessageBeep(0);
		return 0;

上面的代码是CHEDKER1中的部分代码,我认为可以学习的地方都加入了注释,今天晚上一直在做ACM的题目,CHEDKER2跟CHEDKER3中代码还未加入注释。

我认为这个程序可以改为五子棋的小软件。


你可能感兴趣的:(《Windows程序设计》之鼠标1)