[C# Winform 예제] ScreenSaver 스크린세이버 만들기

스크린세이버프로그램다운

예제를 그냥 따라만 해서 인지 코드가 이해가 잘 안간다..
디버거 실행해서 확인하고 싶은데.. 화면이 꽉차저서 확인하기도 힘들다.
학습하기 어려운 예제인가 아님 내가 멍청한가

일단 사용할 Field 들을 선언 한다.


Form1 이 로드 되면 실행될 Method가 담긴 Eventhandler 를 간단히 Form1 > Property> Load 나
Form1 을 더블 클릭해서 생성한다 .
커서를 사라지게 하는 Cursor.Hide();  가 있고
아직 선언하지 않은 ShowScreenSaver();
Method가 있다.



여기서 좀 햇갈리고 이해 안된다 ..









Rectangle fullScreen = Screen.PrimaryScreen.Bounds;
Rectangle 클래스 를 fullScreen 이란 이름으로 선언뒤에
Screen 에 PrimaryScreen 에 Bounds Method 실행값을 저장한다.

미리선언해둔 screenWidth = fullScreen.Width;
                         screenHeight = fullScreen.Height;

this.pbImg.Location = new Point(Convert.ToInt32(fullScreen.Width/ 2 - 200),
                                                    (Convert.ToInt32(fullScreen.Height / 2 - 250));

pbImg 는 picturebox 이름 이다.
pbImg 에 Location 는
           new Point 생성(Convert.Toint32 로 바꾼 (fullScreen에 Width 를 2로 나누고 200뺀 값),
                                    (Convert.Toint32 로 바꾼 (fullScreen에 Height 를 2로 나누고 250을 뺀 값))

새롭게 생성한 Point (x,y) 좌표를 pbImg.Location 에 저장.








StopScreenSaver() Method 에서는
Cursor.Show(); // 커서 살리고
Timer.Enabled = false; // 타이머 꺼버리고
Application.Exit(); // 어플 닫아버리고 끝냄












Timer_Tick () 는 Timer toolbox에서 더블클릭한것을  Design 뷰에서 또 더블 클릭하면
코드 자동 생성되니 그안에다가 코드 남발하면 됨

this.lblTitle.Location = new Point(this.screenWidth - marqueeLocation, 10);
미리 만들어 놓은 lblTitle 이란 라벨을 Location 에 new Point x, 10 을 저장하는데 x 가 this. screenWidth - marqueeLocation 을 한것이야......
this.lblTitle.visible = true ; // 로 라벨 lblTitle 을 보이게 하고
marqueeLocation += 2 // marqueeLocation = marqueeLocation + 2  2씩 계속 추가
이렇게 되면 this.lblTitle.Location 이 왼쪽으로 2 씩 이동하것지 1초마다

if (this.lblTitle.Location .x <= - this.lblTitle.Width)
 만약~ 라벨 lblTitle 에 Location 에 x 가 라벨 lblTitle.Width 즉 그 라벨의 음수가로값이랑 같거나 더 작을경우
marqueeLocation = 0;

marqueeLocation 을 0 으로 초기화 ~











애는 쫌있다가....

머리 아픔...



















댓글

이 블로그의 인기 게시물

아 정말 이사람 IELTS 관한 비법 글은.. 정말 공감10000%

Vocabulary for IELTS (2000 words) advanced level.