타이틀바가 없을 경우 다른 부분을 드래그해도 다이얼로그를 이동하고자 할경우 두가지 방법

1.WM_LBUTTON 의 처리
void CXXDLG::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
 CPoint pt = point;
 ClientToScreen(&pt);
 PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(pt.x,pt.y));
 CDialog::OnLButtonDown(nFlags, point);
}
마우스 버틀을 클릭했을때 타이틀바를 클릭한 메시지를 날려 준다.

2. WM_NCHITTEST 메시지 처리

UINT CXXDLG::OnNcHitTest(CPoint point) 
{
  return HTCAPTION;
}
Posted by 스템프

1. 리소스 뷰에서 최상위 (프레젝트.rc 폴더) 에서 오른쪽 버튼을 눌러서 MFC Mode 를 끈다. 

2. 바꾸고자 하는 다이얼로그를 선택하고 속성을 선택해서 Class Name 에 바꾸고자 하는 이름을 적는다. 

3. 다시 MFC Mode 를 True 로 바꾼다. 

4. 프로젝트App::InitInstance() 함수를 찾아서 다음 코드를 추가한다.

WNDCLASS wc;
 GetClassInfo(AfxGetInstanceHandle(), TEXT("#32770"), &wc);
    // 바꾸고자 하는 클래스명
    wc.lpszClassName = TEXT("MyClassName");
    // Register this class so that MFC can use it.
    AfxRegisterClass(&wc);

 

Posted by 스템프

2010. 3. 17. 21:12 program

Flash <-> MFC 통신


1. 플래쉬 -> 윈도우프로그램
    fscommand( "...", true ); 커멘드 호출


2. 윈도우프로그램 -> 플래쉬
 m_flash.CallFunction( "<invoke name='external_func'><arguments><string>arg</string></arguments></invoke>" );

 

2번을 하실때는 플래쉬 액션에
flash.external.ExternalInterface.addCallback( "external_func", this, flash_func );
function flash_func(v:Number)

{

...
}

Posted by 스템프

typedef BOOL (WINAPI *CHANGEWINDOWMESSAGEFILTER)(
UINT message,
DWORD dwFlag
);

선언하시구요 

 HANDLE popapi;
 CHANGEWINDOWMESSAGEFILTER ChangeWindowMessageFilter;

 popapi = LoadLibrary("USER32.DLL");

 ChangeWindowMessageFilter = (CHANGEWINDOWMESSAGEFILTER)GetProcAddress((HINSTANCE)popapi,
  "ChangeWindowMessageFilter");
 ChangeWindowMessageFilter(WM_COPYDATA, 1);

 초기화 init 부분에 넣으시면 끝 

Posted by 스템프
이전버튼 1 이전버튼

블로그 이미지
it 전반적인 것들의 리뷰 작성 및 도움말 블로그 입니다. 유틸,광고,스마트폰에 초점을 맞출예정입니다.
스템프

공지사항

Yesterday
Today
Total