Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
Volume Control과 같은 Window를 만드려면?
Window를 구현하는데 궁금한 점이 있어서 이렇게 글을 올립니다.
작업 표시줄 중에 오른쪽 끝에 항상 윈도우가 조그마하게 표시되어
필요에 따라 불러 쓸수 있습니다. 예로서 Volumn Control 같은거요.
뭐라고 불러야 할 지 이름도 잘 모르겠습니다.
아무튼, 이런 Application을 작성을 하고 싶은데 어떻게 해야 할지
도무지 모르겠습니다. 아시는 고수분이 계시다면 꼭좀 답변해주시면
고맙겠습니다.
미리 감사드리며...꾸벅~
1
COMMENTS
최석기
•
1999.06.17 19:12
최기훈 께서 말씀하시기를...
> Window를 구현하는데 궁금한 점이 있어서 이렇게 글을 올립니다.
> 작업 표시줄 중에 오른쪽 끝에 항상 윈도우가 조그마하게 표시되어
> 필요에 따라 불러 쓸수 있습니다. 예로서 Volumn Control 같은거요.
> 뭐라고 불러야 할 지 이름도 잘 모르겠습니다.
> 아무튼, 이런 Application을 작성을 하고 싶은데 어떻게 해야 할지
> 도무지 모르겠습니다. 아시는 고수분이 계시다면 꼭좀 답변해주시면
> 고맙겠습니다.
>
> 미리 감사드리며...꾸벅~
win95의 오른쪽 귀퉁이에는 스피커의 볼륨조절과 같은 작은
아이콘들이 있습니다.. 자신의 프로그램을 그곳으로 밀어넣는
방법입니다..
먼저 트레이에서 발생하는 메세지를 받아야 하므로 메세지를
정해야 합니다. 다음줄을 {$R *.DFM} 아랫줄에 넣어주세요.
물론 그 한참 위에 넣어도 되지만 다른 유닛에서 쓸게 아니니
아랫쪽에 넣는게 좋죠.
const MY_SHOWFORM_ID = WM_USER+1;
var
iconData : TNotifyIconData;
이제 넣는 부분입니다. 다음의 코드를 FormCreate에 넣어줍니다.
procedure TfmTrayMain.FormCreate(Sender: TObject);
begin
// 폼을 트레이에 넣어준다.
ShowWindow (Application.Handle, SW_HIDE);
// 폼이 안 보임
Application.ShowMainForm:= False;
with IconData do
begin
cbSize := SizeOf ( IconData );
// 델파이에서는 Wnd로 바뀌었음
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_USER + 1;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title);
end;
Shell_NotifyIcon( NIM_ADD, @IconData );
end;
procedure TfrmTrayMain.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon( NIM_DELETE, @IconData );
end;
넣기만 하면 안되겠죠.. 마우스로 클릭하면 다시 화면에 표시가
되어야 죽이든지 바꾸든지 할테니까요..
다음과 같이 다시 살릴 수 있습니다.
// 메세지 프로시져
procedure TfmTrayMain.WndProc;
begin
case Message.Msg of
MY_SHOWFORM_ID:
case Message.lParam of
WM_LBUTTONDBLCLK:Self.Show;
end;
end;
inherited;
end;
WndProc 선언부
procedure WndProc ( var Message : TMessage ); override;
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
왕초보
•
1999.06.18 02:30
1
COMMENTS
/
0
LIKES
툴바에서 hotimage?
안치봉
•
1999.06.18 03:16
왕초보 께서 말씀하시기를... > 툴바에서 image는 알겠는데요. > hotimages가 뭐하는건지 모르겠어요. >...
dreamy
•
1999.06.18 02:15
2
COMMENTS
/
0
LIKES
New items에서
안치봉
•
1999.06.18 03:18
dreamy 께서 말씀하시기를... > Delphi4 Professional 버전을 가지고 있습니다. > 이제 델파이를 좀 배워...
dreamy
•
1999.06.22 03:09
안치봉 께서 말씀하시기를... > dreamy 께서 말씀하시기를... > > Delphi4 Professional 버전을 가지고 ...
김상균
•
1999.06.18 02:06
1
COMMENTS
/
0
LIKES
local email client 구동시키는 방법??
김영대
•
1999.06.18 03:08
김상균 께서 말씀하시기를... > 진짜 초보입니다. > > 버턴을 눌렀을때, local의 default email client...
장일형
1999.06.18 00:48
0
COMMENTS
/
0
LIKES
표만들기 및 Edit(셀나누기,합치기,기타 등등)
소나기
1999.06.18 00:42
0
COMMENTS
/
0
LIKES
전각문자<==> 반각문자 변형
한재영
•
1999.06.18 00:09
1
COMMENTS
/
0
LIKES
스트링 그리드 값을 읽어 오려면..
안치봉
•
1999.06.18 01:13
strgrid1.cells[1,1]을 그냥 참조하시면 됩니다. 쩝... 한재영 께서 말씀하시기를... > 스트링 그리드...
조민경
•
1999.06.17 23:31
3
COMMENTS
/
0
LIKES
FTP에서 이어받기
김영대
•
1999.06.18 03:37
조민경 께서 말씀하시기를... > FTP에서 이어받기를 할려면 어떻게 해야하죠? > > (TFTP Component로도...
안치봉
•
1999.06.18 00:23
조민경 께서 말씀하시기를... > FTP에서 이어받기를 할려면 어떻게 해야하죠? > > (TFTP Component로도...
조민경
•
1999.06.18 00:48
안치봉 께서 말씀하시기를... > > 안녕하세요 > > 글쎄요.. 제가 알기로는 원래 FTP 나 그런계통(WWW...
오인균
•
1999.06.17 23:21
1
COMMENTS
/
0
LIKES
바로가기 링크..?
안치봉
•
1999.06.18 00:26
오인균 께서 말씀하시기를... > 델파이4로 명함관리 프로그램을 작성중인데요.. > 질문이 있습니다.. > ...
이현신
•
1999.06.17 23:00
1
COMMENTS
/
0
LIKES
순수 API 로 ProcessMessages 함수를구현하려면?
이현신
•
1999.06.17 23:17
이현신 께서 말씀하시기를... > 델파이에서 아주 간단한 콘솔 프로그램을 만들었는데.. > 중간에 어떤 작...
왕초
•
1999.06.17 22:03
1
COMMENTS
/
0
LIKES
MDIChild폼을 안보이게....
최석기
•
1999.06.17 22:13
왕초 께서 말씀하시기를... > MDIChild폼이 모두 Minimized되어 있는데요.. > 이 MDIChild폼을 MDI 메인 ...
안정한
1999.06.17 21:50
0
COMMENTS
/
0
LIKES
TMemoryStream에 대하여
지팡이
•
1999.06.17 21:29
1
COMMENTS
/
0
LIKES
다시질문---사운드 죽이기...쩝
신인재
•
1999.06.17 22:45
쩝 MCI함수를 써서 플레이를 해야 될꺼같습니다.. 자료실에 제가 올려놓은 MciPlay.pas가 있습니다. ...
디제이
•
1999.06.17 21:11
1
COMMENTS
/
0
LIKES
Record 형으로 저장된 파일 읽고 쓰기
김영대
•
1999.06.18 03:29
디제이 께서 말씀하시기를... > Record 형으로 저장된 파일을 읽고 쓸려고 합니다. > 헌데 문제는 Record...
최기훈
•
1999.06.17 20:23
1
COMMENTS
/
0
LIKES
질문] 2448에 대한 추가 질문 : TNotifyIconData가 없어요?
최석기
•
1999.06.17 20:28
최기훈 께서 말씀하시기를... > 최석기님이 보내주신 답변 잘받았습니다. > 하지만 TNotifyIconData에 해...
이호선
•
1999.06.17 18:26
1
COMMENTS
/
0
LIKES
ActiveX 의 Chartfx 콤퍼넌트 사용시...
최석기
•
1999.06.17 19:16
이호선 께서 말씀하시기를... > 안녕하세요 > Chartfx콤퍼넌트를 사용하는데 배포 컴퓨터에 클래스가 등...
북해
•
1999.06.17 18:02
1
COMMENTS
/
0
LIKES
동적생성한 버튼을 해체하려하는데...
최석기
•
1999.06.17 19:10
북해 께서 말씀하시기를... > 안녕하세요. 동적생성한 버튼을 해체하려하는데 잘 안되네요. 단순히 하나의...
최기훈
•
1999.06.17 18:00
1
COMMENTS
/
0
LIKES
Volume Control과 같은 Window를 만드려면?
Window를 구현하는데 궁금한 점이 있어서 이렇게 글을 올립니다. 작업 표시줄 중에 오른쪽 끝에 항상 윈도우가 조그마하게 표시되어 필요에 따라 불러 쓸수 있습니다. 예로서 Volumn Control 같은거요. 뭐라고 불러야 할 지 이름도 잘 모...
최석기
•
1999.06.17 19:12
최기훈 께서 말씀하시기를... > Window를 구현하는데 궁금한 점이 있어서 이렇게 글을 올립니다. > 작업 ...
한 재
1999.06.17 17:40
0
COMMENTS
/
0
LIKES
트리 뷰의 노드와 파일...
문창완
•
1999.06.17 07:39
1
COMMENTS
/
0
LIKES
사운드 강제로 죽이기는...
최석기
•
1999.06.17 17:47
문창완 께서 말씀하시기를... > 지금 소리가 나는 사운드(Wav 파일)를 어떻게 죽이죠...? > 알려주세요. ...
이호선
•
1999.06.17 06:34
1
COMMENTS
/
0
LIKES
ActivX콤퍼넌트들을 배포하려면....
최석기
•
1999.06.17 17:38
이호선 께서 말씀하시기를... > 안녕하세요. > ActiveX에서 Chartfx를 사용하는데 배포할때 클래스가 등...
최기훈
1999/06/17 18:00
Views
206
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> Window를 구현하는데 궁금한 점이 있어서 이렇게 글을 올립니다.
> 작업 표시줄 중에 오른쪽 끝에 항상 윈도우가 조그마하게 표시되어
> 필요에 따라 불러 쓸수 있습니다. 예로서 Volumn Control 같은거요.
> 뭐라고 불러야 할 지 이름도 잘 모르겠습니다.
> 아무튼, 이런 Application을 작성을 하고 싶은데 어떻게 해야 할지
> 도무지 모르겠습니다. 아시는 고수분이 계시다면 꼭좀 답변해주시면
> 고맙겠습니다.
>
> 미리 감사드리며...꾸벅~
win95의 오른쪽 귀퉁이에는 스피커의 볼륨조절과 같은 작은
아이콘들이 있습니다.. 자신의 프로그램을 그곳으로 밀어넣는
방법입니다..
먼저 트레이에서 발생하는 메세지를 받아야 하므로 메세지를
정해야 합니다. 다음줄을 {$R *.DFM} 아랫줄에 넣어주세요.
물론 그 한참 위에 넣어도 되지만 다른 유닛에서 쓸게 아니니
아랫쪽에 넣는게 좋죠.
const MY_SHOWFORM_ID = WM_USER+1;
var
iconData : TNotifyIconData;
이제 넣는 부분입니다. 다음의 코드를 FormCreate에 넣어줍니다.
procedure TfmTrayMain.FormCreate(Sender: TObject);
begin
// 폼을 트레이에 넣어준다.
ShowWindow (Application.Handle, SW_HIDE);
// 폼이 안 보임
Application.ShowMainForm:= False;
with IconData do
begin
cbSize := SizeOf ( IconData );
// 델파이에서는 Wnd로 바뀌었음
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_USER + 1;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title);
end;
Shell_NotifyIcon( NIM_ADD, @IconData );
end;
procedure TfrmTrayMain.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon( NIM_DELETE, @IconData );
end;
넣기만 하면 안되겠죠.. 마우스로 클릭하면 다시 화면에 표시가
되어야 죽이든지 바꾸든지 할테니까요..
다음과 같이 다시 살릴 수 있습니다.
// 메세지 프로시져
procedure TfmTrayMain.WndProc;
begin
case Message.Msg of
MY_SHOWFORM_ID:
case Message.lParam of
WM_LBUTTONDBLCLK:Self.Show;
end;
end;
inherited;
end;
WndProc 선언부
procedure WndProc ( var Message : TMessage ); override;