IT_Programming/MFC · API 51

다이얼로그 박스 동적으로 키우기 / 도스&콘솔 프로그램 관련

"><다이얼로그 박스 동적으로 키우기> GetWindowRect( &test ); int x,y,cx,cy; x = test.left; y = test.top; cx = (test.right-test.left) + 30; cy = (test.bottom-test.top) + 30; MoveWindow(x,y,cx,cy, TRUE ); 위처럼 하면 다이얼로그 박스가 30 커집니다. <도스&콘솔 프로그램 관련(창안띄우기,StdOut, Wait)> 이 코드는 DOS 프로그램 또는 Win32 ..

동적으로 컨트롤 크기 변경하기 / 릴리즈 모드에서 브레이크 포인트 사용

"><동적으로 컨트롤 크기 변경하기> CRect rect; m_Btn.GetWindowRect(rect); int x,y,cx,cy; x = rect.left; y = rect.top; cx = (rect.right-rect.left) + 30; cy = (rect.bottom-rect.top) + 30; m_Btn.MoveWindow(x,y,cx,cy,TRUE); // m_Btn은 버튼 변수. 위는 버튼 컨트롤에 대해서 했는데 다른 컨트롤도 위처럼 사용하시면 됩니다. "><릴리즈 모드에서 ..

Visual C++의 유용한 단축키 / ALT+F4로 종료 안되게 하려면

"><Visual C++의 유용한 단축키> * Ctrl+F3 : 현재 커서가 있는 위치의 단어가 나오는 다음 위치를 찾아줍니다. Ctrl+Shift+F3을 누르면 이전 걸 찾아주죠. * Ctrl+H : replace입니다. 특히 일정부분안의 변수 이름을 변경하거나 할 때 범위를 선택한 다음에 Ctrl+H를 누르면 편하죠. * Ctrl+], Ctrl+E : 괄호 짝을 맞춰줍니..

키보드로 마우스 커서 움직이기 / 파일 등록정보 보여주기

"><키보드로 마우스 커서 움직이기> 제목 그대로 키보드로 마우스 커서를 움직이는 코드입니다. CView에서 OnKeyDown 함수를 다음과 같이 고치면 됩니다. void CCGhostView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default CPoint ptCurPos; // 현재 커서의 위치 if(::GetCursorPos(..

새창을 활성화시키기 않고 생성시키기 / 생성한 Class를 간단히 완전제거

"><새창을 활성화시키기 않고 생성시키기> 보통의 팝업윈도우를 생성할 때에는 일반적인 방법으로는 팝업 윈도우가 생성되면서 그 윈도우가 활성화 되고 포커스가 가게 됩니다. 가끔 이러한 현상을 원하지 않을 때가 있을수 있습니다. 그럴땐 이렇게 해주면 됩니다. 우선 1. WS_VISIBLE속성 없이 창을 ..

데이터 형변환 / VC++에서 시리얼 포트로 데이터 비트 발생

"><데이터 형변환> 현재 프로그램 상에서 에디터 창으로 입력받은 아스키 데이터 20바이트를 헥사값 10바이트로 바꿔서 저장한 후 전송하려 합니다. 예를 들면 '3', '2' (ASCII - 2 byte)를 입력받아 헥사값 '32'로 저장하려는 것이지요(HEXA - 1 byte). '3' '2' 'A' '2' '1' ....'9' '9' '0' (화면상에서 20자리 데이터 입력..

다이얼로그 박스 없이 뷰 화면에 버튼 만들기 등등

"><다이얼로그 박스 없이 뷰 화면에 버튼 만들기> 뷰에서 다이얼로그 박스를 만들지 않고 버튼을 뷰 화면에 만드는 방법을 알고 싶습니다. 일반적으로 CWnd에서 상속받은 윈도우에 버튼을 넣고 싶으면 다음과 같이 해보세요. [1] 자신이 특별히 사용할 버튼을 CButton으로부터 상속받는다. class iMyButton :..

분할 윈도우에서 뷰 바꾸기 / MDI에서 Child LIST를 얻는 방법

"><분할 윈도우에서 뷰 바꾸기> 분할 윈도우에서 한쪽 창의 버튼을 눌렀을 때 다른 창의 뷰가 새로운 뷰로 전환되도록 하려고 하는데 잘 안되네요. 방법을 일러주세요. CSplitterWnd에서 상속받은 다른 클래스를 하나 생성하고, 다음과 같은 함수를 하나 만듭니다. BOOL CSplitter::ReplaceView(int row, int col, CRun..

프로그램 시작시 About박스를 표시 / 입력 컨트롤에서 허용하는 문자 제한

"><프로그램 시작시 About박스를 표시하려면> MFC 5.0을 사용해 응용 프로그램이 시작할 때 프로그램의 소유권자를 보여주는 About box를 띄우고 싶습니다. About박스의 알고리즘을 살펴보면 생각보다 쉽습니다. 먼저 About박스를 생성하려면 다이얼로그를 모들리스(modeless)로 만들어야 합니다. 이렇게 만들..

현재 작업중인 목록을 만들려면 / 리스트박스 깜박임 멈추기

"><현재 작업중인 목록을 만들려면> 리스트 박스에 현재 작업중인 윈도우의 목록을 넣고 싶은데, 어떤 방법을 사용해야 하는지 감을 잡을 수 없습니다. 작업 관리자(Task Manager)는 최상위 단계 윈도우 목록을 출력하므로 이를 이용하면 됩니다. 단, 이 목록에 포함되는 윈도우는 화면에서 직접 볼 수 ..