반응형 C & C++/MFC 컨트롤199 [Etc] 가위, 바위, 보 게임 2011. 4. 18. [MFC] 화면 갱신 우선처리 어떠한 작업 코드 전에 화면 처리 코드를 넣어도 의도와 달리 작업이 끝난 후에 화면 갱신이 되는 경우가 있습니다. 작업이 순식간에 끝나는 경우라면 별 차이가 없지만 작업이 오래 걸리는 경우, 의도와 다른 결과를 보게 됩니다. 이것은 메세지 큐에서 대부분 메세지를 순서대로 처리하지만, WM_PAINT는 가장 나중에 처리 되기 때문 입니다. (화면변경 작업이 다 끝난 후에 일괄적으로 화면 갱신을 하겠다.. 뭐 이런 마소의 의도겠죠) 특히 OnInit시에 유용하게 쓰일 수 있습니다. 이 경우 메세지 큐의 메세지들을 강제로 뽑아내서 WM_PAINT를 잡아내어 처리하면 됩니다. MSG msg; while(1) { if( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) ) { if( msg.. 2011. 4. 18. [Dialog] 제목표시줄(비작업영역)에 버튼을 만들려면?? 버튼 2개를 작성해 보겠습니다. 1. 먼저 버튼을 디자인(?) 하셔서 4개의 비트맵을 만들어줍니다. IDB_BTN1OFF, IDB_BTN1ON, IDB_BTN2OFF, IDB_BTN1ON, 2. 다음 넣고자 헤더에 인크루드 해주십시요. #include "CaptionButton.h" SetBmpID(2, IDB_BTN2OFF, IDB_BTN2ON, TRUE); // 일반 버튼의 효과를 내줍니다. m_pCapBtn1->EnableButton(TRUE); // 버튼을 사용할 수 있게 해야겠죠 ? m_pCapBtn2->EnableButton(TRUE); // 사용 못하시게 할려면 FALSE를 주십시요. 5. OnDestroy() 부분에는 if(m_pCapBtn1) delete m_pCapBtn1; if(m_p.. 2011. 4. 18. [Progress] 프로그레스바 색상 바꾸기 * progress bar 색상 m_Progress.SendMessage(PBM_SETBARCOLOR, 0, (LPARAM)(COLORREF)RGB(255, 0, 0)); : 바의 색상이 빨간색으로 바뀜 m_Progress.SendMessage(PBM_SETBKCOLOR, 0, (LPARAM)(COLORREF)RGB(0, 255, 0)); : 바의 배경색이 녹색으로 바뀜 2011. 4. 18. [Button] 버튼에 이미지, 아이콘 적용 2011. 4. 15. [Ctrl] 컨트롤 색상, 폰트 변경 폰트는...->그냥 다이알로그 전체에 속성을 줘도 되지만...아닌 경우, CFont m_font; 변수 선언해주고.... 초기화해주세요.... LOGFONT lf; memset(&lf, 0, sizeof(LOGFONT)); lf.lfCharSet = 0x81; lf.lfHeight = 20; strcpy(lf.lfFaceName, "궁서체"); m_font.CreateFontIndirect(&lf); m_ctrlEdit.SetFont((CFont*)&m_font, TRUE); m_ctrlBtn.SetFont((CFont*)&m_font, TRUE); 색깔은.. OnCtlColor안에 if(pWnd->GetDlgCtrlID() >= IDC_STATIC){ pDC->SetBkColor(BACK_COLOR);.. 2011. 4. 14. 이전 1 ··· 19 20 21 22 23 24 25 ··· 34 다음 반응형