mfc_custom_window_2 - 8BitsCoding/RobotMentor GitHub Wiki


원을 그리고 κ°€μš΄λ°λ₯Ό 뢈투λͺ…ν•˜κ²Œ μ „μ‹œ


투λͺ…도 섀정을 μœ„ν•΄μ„œ Layeredλ₯Ό True둜 λ‘”λ‹€.


BOOL CMFCApplication1Dlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// 이 λŒ€ν™” μƒμžμ˜ μ•„μ΄μ½˜μ„ μ„€μ •ν•©λ‹ˆλ‹€.  μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ μ£Ό 창이 λŒ€ν™” μƒμžκ°€ 아닐 κ²½μš°μ—λŠ”
	//  ν”„λ ˆμž„μ›Œν¬κ°€ 이 μž‘μ—…μ„ μžλ™μœΌλ‘œ μˆ˜ν–‰ν•©λ‹ˆλ‹€.
	SetIcon(m_hIcon, TRUE);			// 큰 μ•„μ΄μ½˜μ„ μ„€μ •ν•©λ‹ˆλ‹€.
	SetIcon(m_hIcon, FALSE);		// μž‘μ€ μ•„μ΄μ½˜μ„ μ„€μ •ν•©λ‹ˆλ‹€.

	// TODO: 여기에 μΆ”κ°€ μ΄ˆκΈ°ν™” μž‘μ—…μ„ μΆ”κ°€ν•©λ‹ˆλ‹€.

	CRgn rgn;
	rgn.CreateEllipticRgn(0,0,200,200);
	SetWindowRgn(rgn, TRUE);

	SetBackgroundColor(RGB(0, 200, 255));

	SetLayeredWindowAttributes(RGB(255,0,0), 80, LWA_ALPHA | LWA_COLORKEY);
	// 뢉은색은 투λͺ…ν•˜κ²Œ 해달라

	return TRUE;  // 포컀슀λ₯Ό μ»¨νŠΈλ‘€μ— μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ TRUEλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
}
void CMFCApplication1Dlg::OnPaint()
{
	CPaintDC dc(this); // 그리기λ₯Ό μœ„ν•œ λ””λ°”μ΄μŠ€ μ»¨ν…μŠ€νŠΈμž…λ‹ˆλ‹€.

	if (IsIconic())
	{
        // ...
	}
	else
	{
		dc.SelectStockObject(DC_BRUSH);
		dc.SetDCBrushColor(RGB(255, 0, 0));
		dc.SelectStockObject(NULL_PEN);
		dc.Ellipse(30, 30, 170, 170);

		CPen grid_pen(PS_DOT, 1, RGB(0, 0, 128));
		CPen * p_old_pen = dc.SelectObject(&grid_pen);
		dc.SetBkColor(TRANSPARENT);
		dc.MoveTo(100, 30);
		dc.LineTo(100, 170);
		dc.MoveTo(30, 100);
		dc.LineTo(170, 100);
		dc.SelectObject(p_old_pen);
		grid_pen.DeleteObject();
		// CDialogEx::OnPaint();
	}
}