창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


질문게시판
- 반드시 검색을 하신 후 원하는 답변을 찾을 수 없을 때, 질문을 올려주세요.


LIST ALL
Posted by 김길남2006-12-22 17:25:06, Hit : 4136
이미지로 토글버튼 만들기 가 가능 할까요?
Homepage : http://infomasi.com
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=qna&no=1735

이제 도움말을 보면 조금 눈에 들어오고 이해도 되는것도 있군요,,,

암튼 알아야 전체적인 디자인이나 구현범위도 기획할텐데요,,,

소스자료는 70% 정도 다운받아 서 열어 본듯합니다 ㅎㅎ
그랬더니 제가원하는 항상위 소스가 있더군요,,,
API 이용하는거요,, 어찌나 기쁘던지,,그밖에 공부 많이 됬구요,,

근데 현제 맨위 상태이면 이미지 버튼이 상태가 불이 켜지고
맨위가 해제 되면 불이 꺼지는 그런것도 가능 하겠지요?
단순히 버튼을 음각->양각으로 처리 하는건 모양세가 좋지 않아서요,,

버튼{
만일 버튼을 클릭했을때
이런일을 해!!
그리고 이미지를 칼라로 변경해,,,
또,,다른메뉴를 통해서 (가령환경설정) 같은데서 이걸하도록 되 있으면 이미지를 칼라로 표시해,,,

한번 더 눌렀을때는
이런일을 해,,,
그리고 모노톤 이미지로 바꿔,,,
또 다른메뉴를 통해서 하지말라고 했으면 이미지를 모노로 표시해,,또는 다른그림으로 표시해}

이런식으로 이미를 변경하면서 버튼을 만들 수 있겠지요?
힌트라도 주시면 감사 하겠습니다,,

아울러서
다음명령어 ..창맨위로 올리는 API 방식입니다..

실수 HWND_TOPMOST, SWP_SHOWWINDOW;
HWND_TOPMOST := 4294967295;
SWP_SHOWWINDOW := 64;
api.setwindowpos(창0.핸들, HWND_TOPMOST, 창0.좌변, 창0.윗변,창0.폭, 창0.높이, SWP_SHOWWINDOW);

이걸 다시 맨위를 해지 할려면 어떤명령어가 있나요?
설마 맨위로 했으니까 해지 하는것도 있겠지요?

감사 합니다~^^


김길남   2006-12-22 PM 6:15:59  
동적생성,,, 그중에 동적이미지 생성을 이용하는것도 하나에 답이 될 수 있나요?
박종훈   2006-12-22 PM 6:21:21  
안녕하세요~^^
API를 사용하셔서 하시군요ㅋ

항상위 창을 보통창으로 만드는, 방법입니다^^..
[방법과 소스를 알려드리겠습니다.]

방법 :
HWND_TOPMOST를..
HWND_NOTOPMOST를 사용하세요~^^
이것은, 항상위 창의 옵션을 해재하는 겁니다^^..
[HWND_NOTOPMOST의 상수는, -2 이며, 양수형태로 바꾸자면,
4294967294 입니다^^..]

이해가 안가셨죠? [헤헤; 죄송합니다ㅠ]
이 설명은, 어느정도 아신뒤에, 다시 한번 봐주세요~

그러면, 소스 들어갑니다^^;
실수: HWND_NOTOPMOST, SWP_SHOWWINDOW;
HWND_NOTOPMOST := 4294967294;
SWP_SHOWWINDOW := 64;
api.setwindowpos(창0.핸들, HWND_NOTOPMOST, 창0.좌변, 창0.윗변,창0.폭, 창0.높이, SWP_SHOWWINDOW);
손상진   2006-12-22 PM 6:24:30  
이걸 어떻게 설명해드려야겠는지.. 난감하네요. ^^;;

일단 API설명부터 SetWindowPos는... 함수명을 풀리하자면
윈도우의 포지션을 세팅하는 함수입니다.
이함수의 원형은
BOOL SetWindowPos(
HWND hWnd, // handle of window
HWND hWndInsertAfter, // placement-order handle
int X, // horizontal position
int Y, // vertical position
int cx, // width
int cy, // height
UINT uFlags // window-positioning flags
);
이렇게 생겼습니다.

첫번째 인자(HWND hWnd)는 말그대로 핸들 오프 윈도우. 대상 창의 핸들을 적어주시면되고요.(예: 창0.핸들)
두번째 인자(HWND hWndInsertAfter)는 위 대상창의 위치를 정해주는건데요, 아들관계를 정의하거나 창와 Top-Level을 지정해줄 수 있어요
Top-Level지정에는 4가지 옵션이 있습니다.
HWND_BOTTOM, HWND_NOTOPMOST, HWND_TOP, HWND_TOPMOST

여기서 설명해야할것이 상수에 대한 개념인데요. 창조에서는 완벽하게 존재하는 개념이 아니라서 설명하기가 좀 힘들긴 하네요.
함수로 어떤 설정값을 보낼때 문자로 하면 용량이 커서 난감합니다. 그래서 숫자로 하는데.. 모 예를들어(예입니다) 1을 넣으면 항상위로해라 2를 넣으면 항상위를 해제하라 이런식으로.. 근데 숫자로 하면 프로그래머가 1이 모고 2가 몬지 알아보기 힘들죠.. 그래서 상수를 사용합니다. 상수란 어떤한 수를 문자로 정의하는건데요 예를들어 TWO를 2로 상수정의해두면 TWO + 3 은 5가 되는거죠. 컴퓨터는 알아서 저 문자를 정의해둔 수로 인식하게 됩니다.
위에 있는 HWND_TOPMOST같은것도 상수입니다. 다 각자의 수가 있는거죠.. 근데 창조에는 이게 미리 정의되어있지 않아서, 함수 인자에 직접 수를 써주던지, 아니면 변수를 이용해서 정의해준겁니다.

실수 HWND_TOPMOST, SWP_SHOWWINDOW;
HWND_TOPMOST := 4294967295;
SWP_SHOWWINDOW := 64;
이렇게 변수를 이용해서 정의해줬습니다. 위 님께서 쓰신 글의 예제에서는..

다음 3번째부터 6번째 인자까지는 창의 좌변, 윗변, 폭, 높이 입니다.
그다음 7번째 인자(UINT uFlags)는 플래그라고 하는데요. 어떻게 설명해야하나.. 흠.. 기능에 대한 스위치? 라고 대충 설명할 수 있겠는데요..여기에도 상수를 써서 설정해줍니다.
위에서는 SWP_SHOWWINDOW를 썼는데요 SWP_SHOWWINDOW는 64란 수로 정의되어있는 상수입니다.
SWP_SHOWWINDOW는 창을 보이라는 플래그입니다.
반대로 작동하는 SWP_HIDEWINDOW(수로는 128)도 있습니다.
그리고 위에서 사용할수 있는것 두개를 소개하겠습니다.
SWP_NOSIZE(수로는 1)와 SWP_NOMOVE(수로는 2)입니다.
SWP_NOSIZE는 말그대로 사이즈를 바꾸지 않겠다(한마디로 인자에 써준 사이즈값을 사용하지 않겠다.)
SWP_NOMOVE는 창을 움직이지 않겠다(한마디로 인자에 써준 위치값을 사용하지 않겠다.) 입니다.
이 두 플래그를 써주면 3번째부터 6번째 인자에 0만 채우셔도 됩니다.

위에서 설명한대로 사용해서 창의 항상위를 해제하는걸 써보면..

실수: HWND_NOTOPMOST, SWP_NOSIZE, SWP_NOMOVE;
HWND_NOTOPMOST := 4294967294;
SWP_NOSIZE := 1;
SWP_NOMOVE := 2;
api.SetWindowPos(창0.핸들, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE + SWP_NOMOVE);

이렇게 됩니다.

SetWindowPos에 대한 자세한 정보는...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/setwindowpos.asp
MSDN라이브러리 입니다.
손상진   2006-12-22 PM 6:29:07  
제가 위에서 썼듯이.. 상수는 수입니다.. 그래서 직접 수로 써줄수도있는데 직접 써주면 실수변수를 선언하는 귀차니즘(?)이 없어지겠지만 나중에 알아보기는 힘들겠죠.. 제 뎃글중 마지막에 있는 소스 5줄을 상수를 직접 수를 쓰는걸로 바꿔보면..

api.SetWindowPos(창0.핸들, 4294967294, 0, 0, 0, 0, 1+2);

이렇게 됩니다.
김길남   2006-12-22 PM 6:39:08  
제가 공부를 해서 그럴까요? 우째 이리 잘 들어 올까요,,,
아이고 나 대견하다,,,가 아니고^^
다는 이해는 못해도 개념이 이해가 되니 너무 속도 편안하고
고마울 따름입니다,,,^^
손상진   2006-12-22 PM 6:43:21  
이해가 되셨다니.. 맘놓이네요^^;
박종훈   2006-12-22 PM 10:02:48  
네~ 일단, 김길남님의 열정에 감동했습니다^^..
아참, 저의 이야기를 살짝하자면;

예전에는 이해가 안되던 소스가.. 실력이 올라서! 이해가 된다면..
정말 뿌듯하죠~^^
정성우   2006-12-22 PM 10:22:37  
전에 이 항상위 API 쓰려다 보통 위치로 되돌리는 걸 몰라서 쓰는 걸 포기했었는데... 이제 알게 되서 다행이네요 ^^;;
박종훈   2006-12-23 AM 7:55:47  
아.. 저는, ㅎ창.창형식 속성만 쓰는 바람에;
[이 문제는 생각해 본적이 거의 없는데; 오늘 이렇게 ^^]
김길남   2006-12-26 PM 1:43:45  
체크박스는 이미지 전환이 쉽게 가능하네요,,,
아직 정확안 원리는 모르겠구요,,
지상현   2006-12-26 PM 6:31:43  
플래그 변수라는 것으로 이것을 해결할 수 있습니다.
아무 변수나 선언해놓고 (이미지) 버튼의 눌림 상태를 이 변수에 보관하고, 눌림 상태에 따라 알맞는 이미지로 바꾸면 됩니다.
따로 변수를 선언하는 부담이 있다면, 모든 객체에 있는 속성인 "찌끼"를 참고해보세요. 객체 동작에 아무런 영향을 미치지 않지만 이와 같은 경우를 위해 마련된 속성입니다.
정성우   2006-12-26 PM 9:51:01  
단지 토글버튼을 꾸미기 위한 거라면
http://cugz.com/bbs/zboard.php?id=pds_etc&no=653
체크박스에 이미지를 씌워 쓰는 것도 좋은 방법입니다.
김길남   2006-12-27 AM 3:16:23  
네 정성우님 감사 합니다,,
워낙 초보자라 보고도 모르는 경우가 많습니다,
체크박스가 무지 간편하게 이미지 전환이 가능합니다만,,
아직도 해결되지 못한 부분이 체크박스 색상이 투명하게 되지 않음에 절망이,,, 즉 이미지는 투명하게 지원되나,, 체크박스 객체에 자체 배경색이 있음으로 해서,, 아름답고 편안한 디자인에 걸림돌이 되네요,,
정성우   2006-12-27 PM 7:43:08  
김길남//
체크박스에도 배경 투명이 가능합니다.
이미지의 맨 처음 픽셀(1x1)에 있는 색이 투명이 되는 색으로 알고 있습니다. 그러니까 투명으로 만드려는 공간에 그 색을 채우면 되겠죠?
김길남   2006-12-27 PM 9:35:58  
정성우님,,, ~~ ㅎㅎ
얼른 테스트 해볼께요 ㅎㅎ
김길남   2006-12-27 PM 9:51:33  
절망입니다,,,
이미지의 첫픽셀의 색이 투명하게 되는건 맞습니다.
그러나 여기서 문제되고 있는
그 라디오버튼 자체의 색상은 투명하게 되지 않네요,,
이미지의 특정색은 투명하게 됩니다만,,,
전 이미지의 처음픽셀색하고 같이 라디오버튼 색상을 지정해주면
라이오버튼 색상도 투명해지는 줄 알았습니다.

두번째 한계라면,,
이미지 크기도 제한이 있네요?
이미 가로세로 크기가 정해저 있나봐요,,,
사용할 이미지의 크기를 크게 하고 그것이 다 나오게 할 수는 없는거지요?
정성우   2006-12-28 PM 3:59:05  
두번째 한계는, 라디오버튼 속성중 높이와 폭을 적당이 조절하면,... 될 듯 한데;;;
이거 참 난감한 문제네요...
김길남   2006-12-28 PM 5:46:50  
크기에 제한이 없다는걸 확인하고 달려오는길입니다.
버튼의 크기는 사용되는 전체 크기의 비율에 의해서 자동으로 책정되네요,,
확실하진 않지만 사용되는 이미지의 폭의 1/4 크기가 출력되는 가로크기 세로의 크기가 되는것으로 판단 됩니다.

그리고 투명색의 기준이 맨 좌위 색상이 투명이 되는것이 아니고
맨 좌아래측 측에 색상이 투명이 되는데,.. 맞나요?
김길남   2006-12-28 PM 5:55:14  
그런데 우째 1/2 가 아니고 1/4 까요?
혹 체크박스에 참 거짓이 아니고 다른경우수도 만들수 있다는 것일까요?
박종훈   2006-12-28 PM 7:31:11  
체크박스의 참과 거짓,
그리고 ...
체크박스의 체크, 체크X

이렇게 해서, 4가지의 경우이어서, 1/4 등분이 되는겁니다.
그리고, 투명색이 대한 것은, 잘 모르겠네요^^;

암튼, 가장 가생이[가장자리..]의 색상이 투명색이 되는 것은 확실한듯 합니다.
[가생이란.. 가장자리의 충청도 방언-_-;]
지상현   2006-12-29 AM 3:06:44  
확실히 선택상자에 선택, 선택 안함, 일부 선택 이렇게 3가지 상태가 있는 경우가 있습니다.
읽기 전용인 파일과 그렇지 않은 파일을 둘 다 선택하고 파일 등록 정보를 보시면 읽기 전용 선택상자에서 3번째 상태를 보실 수 있습니다. ^^
뭐, 창조에 있는 선택상자는 그것까지 지원해주는건 아닌것 같습니다.
LIST ALL               GO TO THE TOP


N
Category
   Subject
Posted by
Date
H
1483 창조
   모양내기가 여간 까다롭네요,,, [7]
김길남 2006/12/22  2731
창조
   이미지로 토글버튼 만들기 가 가능 할까요? [21]
김길남 2006/12/22  4136
1481 창조
   또 질문이;; [5]
마이네도 2006/12/22  2714
1480 창조
   질문있는데욤;; [9]
마이네도 2006/12/22  2756
1479 창조
   영상문제 한번더 문의 합니다 [2]
황선한 2006/12/21  3676
1478 창조
     [질문보강] 항상위 구현은 어떻게 하나요? [9]
김길남 2006/12/20  4352
1477 창조
   bOR, bNOT, bAND, bXOR에 대해.. [3]
박종훈 2006/12/17  3214
1476 창조
   파일관리창에서 찾은 엑셀파일을 실행하기.. [2]
미리내 2006/12/15  3221
1475 창조
     [re] [소스요청] 고수님들 도움 부탁드립니다. [3]
정성우 2006/12/13  4054
1474 창조
   항상위 구현은 어떻게 하나요? [5]
김길남 2006/12/13  3455
1473 창조
   [소스요청] 고수님들 도움 부탁드립니다.
드래곤볼 2006/12/13  2716
1472 창조
   고난위도의 파일복사 프로그램... 도움부탁 [11]
찌까니 2006/12/10  3497
1471 창조
   업데이트 팩토리를 만들면 어떨까요...? [7]
신용주 2006/12/10  2954
1470 창조
   RPG 게임 맵 구성 방법?? [6]
장규형 2006/12/07  3335
1469 창조
   기본적인 HTML 서식에 부분부분 추가/수정이 ... [6]
김병선 2006/12/05  2672
1468 창조
   [질문]서든어택이 불법프로그램을 감별해내는... [8]
김환욱 2006/12/01  4694
1467 창조
   계정 질문 (조금 어려움) [1]
이재필 2006/11/30  2896
1466 창조
     ShowScrollBar API 로 스크롤바 숨기기 [1]
변혁수 2006/11/29  4107
1465 창조
   리스트 박스에서... [5]
신용주 2006/11/29  2731
1464 창조
   이 소스에 대해서 질문 [2]
장규형 2006/11/27  3106
1463 창조
     [re] 중복 프로그램 종료 함수의 오류? [12]
장규형 2006/11/26  3273
1462 창조
   중복 프로그램 종료 함수의 오류? [6]
장규형 2006/11/26  2880
1461 기타
   CreateallKin0u의 제작님
장규형 2006/11/25  3019
1460 창조
   이 소스에서 뭔가 잘못된 점좀 알려주세요. [6]
장규형 2006/11/22  3145
1459 창조
   객체를 숨겨버리면... [3]
No_One 2006/11/22  2984
LIST ALL   Prev [1]..[21][22][23][24][25][26][27] 28 [29][30]..[87] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인