'전체 글'에 해당되는 글 171건

  1. 2007.09.18 1000명 방문기념 방문자 분석 1
  2. 2007.09.14 [소개] Paint.net - 무료이면서 강력한 이미지 편집기
  3. 2007.09.13 뒤에 있는 윈도우를 앞으로 보내기
  4. 2007.09.13 윈도우를 투명하게 만들기 Win2000이상 1
  5. 2007.09.11 WM_MOUSELEAVE 메시지 받기 2

1000명 방문기념 방문자 분석

사회&문화 2007. 9. 18. 18:04

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

작성일 : 2007.09.18

안녕하세요, 추석이 다음주인데 고향갈 준비는 다 하셨는지요? 블로그를 만들고 운영한지 벌써 3달이 다되어 갑니다. 7월에 만들었으니까 3달째에 접어들어 있네요. 오늘 드디어 누적 방문자가 1000명을 돌파하였습니다. 많은 자료도 없는 초기상태인데도 많은 분들이 방문하여 주셔서 감사합니다~ ^^

 

블로그 방문자가 1000명 밖에 않되지만 방문자의 기록을 살표보면 아래와 같은 특징이 있습니다.

 

1.     요일별로 구분해 보면 토요일/일요일 에는 방문자가 줄어든더군요. 아무래도 프로그래밍적인 내용들이다 보니까 주말에는 쉬시는가 하는 생각이 들더군요. 일일 평균방문자수는 평일 기준으로 30~50 명정도 인 것 같습니다. (그런데 오늘은 유난히 많은 77명이네요)

2.     어떻게 이곳을 알고 들어오나 리퍼러를 조사해보니 아래와 같습니다.


1

www.devpia.com (89)

2

www.google.co.kr (63)

3

search.naver.com (38)

4

search.daum.net (17)

5

web.search.naver.com (9)

6

search.empas.com (9)

7

www.eolin.com (7)

8

kr.search.yahoo.com (6)

9

www.google.com (5)

10

www.tistory.com (5)


1위인 데브피아는 아마도 WTL 강좌를 올려서 많이 찾아 오시는 것 같구요, 다음으로는 검색엔진에서 검색결과를 보시고 찾아오는 것 같습니다. 검색엔진은 구글, 네이버, 다음순으로 나오는데, 아무래도 개발자사 평소에 많이 사용하는 검색엔진의 순위가 아닐까 생각이 되네요.. (1000명 기준으로 신빙성은 떨어집니다. ㅎㅎ)

 

3.     그럼 어떤 검색어를 통해서 이곳으로 오나 조사를 해보니 가장 많은 것은 역시 WTL이더군요. 그 뒤로 BringWindowToTop, tinyxml 사용법, cxxtest, 등의 검색어가 순위를 차지하고 있습니다.

 

1000명의 방문자에 대해서 분석을 하는게 무슨 의미가 있나 라는 생각도 들었지만, 나름대로 방문자에 대한 분석을 해보니 재미있더군요. 앞으로 블로그를 더 활성화 시켜도록 노력하겠습니다. 이제 누적방문자 10,000 명을 향해서~~

 

 

 

 



:

[소개] Paint.net - 무료이면서 강력한 이미지 편집기

IT활용 2007. 9. 14. 15:02

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

작성일 : 2007.09.07

마이크로소프트에서 기본으로 제공하는 이미지 편집기인 mspaint(그림판)을 평소에 개발작업을 하면서 많이 사용하였습니다. 그런데 인제 그림판으로는 한계가 오더군요. 포토샵을 설치하기에는 라이센스나 프로그램의 무게 면에서 내키지가 않고, 그래서 대체할 만한 프로그램이 없을까 하고 뒤적뒤적 하다가 좋은 프로그램 하나 발견했습니다. 바로 Paint.net 입니다. 네이버 자료실에서 워싱턴 주립대에서 만든 그래픽 편집 툴이라고 소개를 하더군요. 한글화가 되어 있어서 받아서 실치하고 사용하는데 별 무리없이 사용 할 수가 있습니다. 그림판에 익숙하던 본인도 처음에는 뭐가 뭔지 모르다가 조금 클릭해보니까 막강한 기능에(크기대비) 놀라움을 금치 못하겠더군요 ^^

 

써보면서 제가 느낌점은

 

 * 무료인데 쓸기가 편하고 기능이 많다.

 * 닷넷으로 만들었는데 가벼운 느낌에 빠르더라.

 * 한글화가 되어 있어서 직감적으로 사용하기 쉽다.

사용자 삽입 이미지


아래는 제작사 사이트입니다.

http://www.getpaint.net/index.htm


간단하게 naver에서도 받을수 있습니다.
현재는 3.07버전이 있네요.

ps : 이제 닷넷으로 만든 유틸 프로그램도 쓸만한게 서서히 나오고 있네요. 이제 닷넷으로 넘어 갈려나~



:

뒤에 있는 윈도우를 앞으로 보내기

개발 2007. 9. 13. 14:05

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

목적 : 윈도우를 Foreground로 보내고 싶을때

보통 윈도우가 어떤 윈도우에 가려져 있는 경우나 또는 다른윈도우의 뒤에 있어서 않보이게 된경우 프로그램적으로 윈도우를 앞으로 나오게 할때 BringWindowToTop(), SetForegroundWindow 를 사용하여 처리를 하면 윈도우가 앞으로 나오게 된다. 그러나 가끔 않나올때가 있는데, 이럴때는 아래처럼 강제로 나오게 하는 방법이다.

void ForceForegroundWindow(HWND hWnd)
{
 if(hWnd == NULL) return;

 // DWORD SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000;
 // const DWORD SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001;

 DWORD ForegroundThreadID;
 DWORD ThisThreadID;
 DWORD Timeout;
 BOOL Result;

 if(GetForegroundWindow() == hWnd) {
  return;
 }
 else {
  // Windows 98/2000 doesn't want to foreground a window when some other
  // window has keyboard focus

  OSVERSIONINFO os;
  os.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  GetVersionEx(&os);
  if((os.dwPlatformId == VER_PLATFORM_WIN32_NT && os.dwMajorVersion > 4) ||
   (os.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS &&
   (os.dwMajorVersion > 4 || (os.dwMajorVersion == 4 && os.dwMinorVersion > 0)))){

    Result = FALSE;
    ForegroundThreadID = GetWindowThreadProcessId(GetForegroundWindow(), NULL);
    ThisThreadID = GetWindowThreadProcessId(hWnd, NULL);
    if(AttachThreadInput(ThisThreadID, ForegroundThreadID, TRUE)) {
     BringWindowToTop(hWnd);
     SetForegroundWindow(hWnd);
     AttachThreadInput(ThisThreadID, ForegroundThreadID, FALSE);
     Result = GetForegroundWindow() == hWnd;
    }

    if(!Result) {
     SystemParametersInfo(0x2000, 0, &Timeout, 0);
     SystemParametersInfo(0x2001, 0, NULL, SPIF_SENDCHANGE);
     BringWindowToTop(hWnd);
     SetForegroundWindow(hWnd);
     SystemParametersInfo(0x2001, 0, &Timeout, SPIF_SENDCHANGE);
    }
   }
  else
  {
   BringWindowToTop(hWnd);
   SetForegroundWindow(hWnd);
  }
 }
}




:

윈도우를 투명하게 만들기 Win2000이상

개발 2007. 9. 13. 13:53

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

가끔 윈도우를 투명하게 하고 싶을때가 있는데, 이렇게 윈도우 전체를 투명하게 하는 방법이 있다. 이 방법은 윈도우가 WS_CHILD 속성을 가지고 있을 경우에는 효과가 나타나지 않는다. 즉 어떤 윈도우의 자식인 이부분의 윈도우를 투명하게는 못한다. 윈도우위 하위 윈도우를 투명하게 할때는 직접 그려주는 방법밖에는 없는듯 한다. WIN32 로는 AlphaBlend 함수를 이용하면 되고, GDI+ 를 이용하면 더 간단하게 투명하게 그릴수가 있다.

아래는 간단하게 윈도우 전체를 투명하게 하는 방법이다. SetLayeredWindowAttributes 함수를 이용해서 동작하는 간단한 효과이다.

BOOL SetWindowTransparent(HWND hWnd, BYTE nAlpha)
{
 if( FALSE == ::IsWindow(hWnd))
  return FALSE;

#define LWA_ALPHA 0x00000002


 // 투명윈도우를 위한 LayeredWindow 설정
 long oldWinStyle = GetWindowLong(hWnd, GWL_STYLE);
 ::SetWindowLong(hWnd, GWL_STYLE,  oldWinStyle & WS_POPUPWINDOW & ~WS_BORDER );

 LONG style = ::GetWindowLong(hWnd, GWL_EXSTYLE);
 if(!(style & 0x00080000))
 {
  ::SetWindowLong(hWnd, GWL_EXSTYLE, style | 0x00080000);
 }

 typedef BOOL (WINAPI *SLWA)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
 SLWA pSetLayeredWindowAttributes = NULL;
 HINSTANCE hUSER32 = LoadLibrary("USER32.DLL");
 pSetLayeredWindowAttributes=(SLWA)GetProcAddress(hUSER32,"SetLayeredWindowAttributes");
 BYTE chAlpha = nAlpha;
 pSetLayeredWindowAttributes(hWnd, NULL, chAlpha, LWA_ALPHA);
 FreeLibrary(hUSER32);

 return TRUE;
}



:

WM_MOUSELEAVE 메시지 받기

개발 2007. 9. 11. 18:11

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

저자 : hanburn
환경 : Windows

WM_MOUSELEAVE 메시지는 마우스가 해당 윈도우를 떠날 때 발생하는 메시지이다.

기본적으로 이 메시지는 발생을 안 하는데 이 메시지를 받을려면 다음과 같이 처리를 해야 된다.

OnMouseMove 등에 다음과 같은 코드를 추가해주어야 한다.



 

TRACKMOUSEEVENT        mouseEvent;

mouseEvent.cbSize = sizeof(mouseEvent);

mouseEvent.dwFlags = TME_LEAVE;

mouseEvent.hwndTrack = m_hWnd;

TrackMouseEvent(&mouseEvent);

 

 

그러면 마우스가 윈도우를 떠날 때 WM_MOUSELEAVE 메시지가 날라오게 된다.



: