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


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


LIST ALL
Posted by 김길남2006-12-22 17:25:06, Hit : 4143
이미지로 토글버튼 만들기 가 가능 할까요?
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
1558 창조
   항상위 구현은 어떻게 하나요? [5]
김길남 2006/12/13  3461
1557 창조
     [질문보강] 항상위 구현은 어떻게 하나요? [9]
김길남 2006/12/20  4357
창조
   이미지로 토글버튼 만들기 가 가능 할까요? [21]
김길남 2006/12/22  4143
1555 창조
   모양내기가 여간 까다롭네요,,, [7]
김길남 2006/12/22  2735
1554 창조
   밑판을 투명하게 할 수 있다는 희망이 있습니다. [4]
김길남 2006/12/26  4280
1553 기타
   요즘 자동로그인은 대부분 잘 안되는듯 합니... [4]
김길남 2006/12/28  3764
1552 창조
   DLL 여러게 일때 문제 되는문제.. [12]
김길남 2006/12/29  4454
1551 창조
   창조브라우저와 멀티리스트의 조합하는데 도... [6]
김길남 2006/12/31  3523
1550 창조
     [추가질문] 멀티리스트 내용의 환경문 작성에... [11]
김길남 2007/01/01  3155
1549 기타
   htm과 창조와의 만남이 어디까지 가능한가요? [2]
김길남 2007/01/01  3550
1548 창조
   창조브라우저를 추가로 뛰우는 방법은 있나요? [12]
김길남 2007/01/03  3152
1547 창조
   가속도 주는 문법을 만들고 싶습니다.. [13]
김길남 2007/01/04  3074
1546 기타
   체크알림 기획에 조언좀 듣고자 합니다. [9]
김길남 2007/01/06  3489
1545 기타
     [re] 문법에러는 없는데,,,왜 생각데로 작동되지 ... [33]
김길남 2007/01/07  4356
1544 창조
   문자열자르기에 대한 힌트좀 부탁드립니다. [21]
김길남 2007/01/09  3128
1543 창조
   드래그로 파일오픈하기 기능이 없나요? [10]
김길남 2007/01/10  3825
1542 창조
   ㅎ메모 의 키값불러오기 문법에 관한 응용 [7]
김길남 2007/01/11  3120
1541 기타
   프로그램의 최적화에 관한 종합적인 질문 입... [6]
김길남 2007/01/11  4504
1540 창조
   사운드의 시각화와 제어에 대한 기초 질문 [7]
김길남 2007/01/14  3005
1539 기타
   빛이 빠르나요? 컴퓨터가 빠르나요? [26]
김길남 2007/01/17  3689
1538 창조
   눈금계의 를 직접 컨트롤 하는 문법을 제생각... [10]
김길남 2007/01/24  3084
1537 기타
   사운드 크기를 잡을 수 없다는것이 아쉽습니다. [7]
김길남 2007/01/30  3000
1536 기타
     [re] 사운드 크기를 잡을 수 없다는것이 아쉽습니다. [8]
김길남 2007/01/31  3536
1535 창조
   모션에 대한 공부를 하던중 이보다 더 좋은것... [5]
김길남 2007/01/31  3072
1534 창조
   난수와 모션을 접목하고 동화까지 접목 시도 ... [7]
김길남 2007/02/02  3161
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이희철
로그인