Skip to content

Instantly share code, notes, and snippets.

@tmplinshi
Created October 18, 2013 02:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmplinshi/7035719 to your computer and use it in GitHub Desktop.
Save tmplinshi/7035719 to your computer and use it in GitHub Desktop.
Gui, Add, Edit, w300 h100 hwndhEdit, try to navigate with caret and cursor`n this is a test
Gui, Show
;some part of an old code
IconDataHex =
( Join
0000020001002020000000000000a8100000160000002800000020000000
400000000100200000000000801000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
0000000000000000002002020281171717ff161616ff121212dd00000060
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000002000000060131313e41e1e1eff161616ff
1c1c1cff0303036300000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000400707078c212121ff
191919ff191919ff1c1c1cff030303630000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000002000000080
1a1a1aff202020ff171717ff262626ff1b1b1bff03030363000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000400f0f0fb8232323ff161616ff272727ff363636ff1b1b1bff0303
036300000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000002004040484202020ff191919ff232323ff454545ff3d3d
3dff1d1d1dff030303630000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
00000000000000000000002000000060171717ff1f1f1fff1c1c1cff4040
40ff585858ff3b3b3bff252525ff03030363000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000400b0b0b9e232323ff1717
17ff2e2e2eff818181ff4b4b4bff3b3b3bff1f1f1fff0404048400000020
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000020020202811e1e
1eff181818ff252525ff6e6e6eff656565ff494949ff363636ff1c1c1cff
111111d60000008000000060000000400000002000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000200000
0060131313e41f1f1fff1d1d1dff454545ff757575ff5c5c5cff474747ff
363636ff1a1a1aff161616fe3a3a3aff262626ff333333ff000000800000
004000000020000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
0000000000400707078c222222ff171717ff333333ff898989ff434343ff
1d1e1dff282828ff1f1f1fff161616ff606060ff262626ff204420ff1d58
1eff333333ff333333ff0000006000000020000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
00000000000000000020000000801d1d1dff181818ff262626ff7d7d7dff
4a4a4affffffffff393939ff202020ff252525ff323432ff777777ff3232
32ff204220ff1a551aff157c15ff1d581eff333333ff0000004000000000
000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000400f0f0fb81e1e1eff1f1f1fff
565656ff777777ff595959ff3e3e3eff1b1b1bff0f4713ff0f7f10ff282b
28ff5b5b5bff525252ff272727ff157c16ff119a13ff0ad70cff208721ff
000000800000002000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000002004040484212121ff
191919ff383838ff909090ff5a5a5aff535453ff29312aff0f4713ff1cab
1fff03d406ff1a1a1aff373b37ff898989ff363636ff1d581eff0cc10eff
08ee0aff10b211ff333333ff000000400000000000000000000000000000
000000000000000000000000000000000000000000000000002000000060
1b1b1bff181818ff2c2c2cff8b8b8bff5e5e5eff060606ff171b17ff0f47
13ff268f29ff00ff02ff10d012ff161c17ff1d1f1dff6f716fff646464ff
272727ff157c16ff0cc10eff139c15ff208721ff00000080000000200000
000000000000000000000000000000000000000000000000000000000000
000000400b0b0b9e1d1d1dff222222ff646464ff7a7a7aff0d0d0dff0607
06ff1a341cff268f29ff00ff02ff166e19ff00ff02ff268f29ff181f19ff
262626ffcbcbcbff4f4f4fff262626ff1a551bff157c16ff177f19ff3333
33ff00000040000000000000000000000000000000000000000000000000
000000000000002002020281212121ff191919ff444444ffa0a0a0ff1c1c
1cff030303ff1a2d1bff268f29ff00ff02ff09340dff123415ff238c26ff
02ed04ff1d391eff1a201bff313131fff0f0f0ff4f4f4fff262626ff1a55
1aff1a551aff222222ff0000006000000000000000000000000000000000
00000000000000000000002000000060181818ff171717ff2f2f2fffa2a2
a2ff343434ff020202ff172619ff268f29ff00ff02ff0d4111ff5e685fff
4c554dff153a18ff0ce10eff0c9d0dff1d391eff1e221eff383838fff0f0
f0ff4f4f4fff1d1d1dff1d1d1dff1f1f1fff000000a00000006000000000
0000000000000000000000000000000000000040080808901c1c1cff2323
23ff7c7c7cff5c5c5cff020202ff161f17ff237826ff00ff02ff0f4713ff
626d63ff989a98ff737673ff384639ff153d19ff07f209ff0c9d0dff1d39
1eff1b1e1bff393939ff9d9d9dff535353ff484948ff414141ff111111e4
0e0e0ec50000000000000000000000000000000000000020000000802222
22ff1b1b1bff4f4f4fff8f8f8fff030303ff111712ff216524ff00ff02ff
145717ff606b61ff8a8d8bff575a5cff858685ff6e726eff324534ff1648
1aff07f309ff0c9d0dff1e421fff191a19ff373737ff6e6e6eff484848ff
2e2e2eff1b1b1bff1f1f1fff000000000000000000000000000000200000
0060171717ff171717ff353535ffbbbbbbff0b0c0bff0c0f0cff215924ff
00ff02ff18661bff5b685cff969996ff535759ff061117ff343a3eff8486
84ff6f756fff2b432dff164b1aff24d525ff08bd09ff19621aff172718ff
2d2d2dff333333ff131313ff151515ff161616ff00000000000000000000
000000000040050505861d1d1dff282828ff9a9a9aff7b7c7bff0c0d0cff
235126ff00ff02ff1d7620ff586559ff9ea09eff6d6d6dff5d5d5dff2527
27ff010303ff242c2fff7f837fff586659ff254628ff254628ff00ff02ff
00ff02ff179719ff0c7c0cff1b1b1bff262626ff656565ff505050ff0000
00000000000000000020000000801f1f1fff1d1d1dff5e5e5effbebfbeff
677068ff284e2aff00ff02ff218623ff566557ffabadabff777777ff6565
65ff5f5f5fff5b5f5bff3a413cff1a201cff575857ff39823cff00ff02ff
00ff02ff29ac2bff1a4a1cff212b22ff4e4e4effb9b9b9ff5f5f5fff3030
30ff1a1a1aff000000000000000000000040151515ee1c1c1cff3d3d3dff
d7d7d7ff7c837dff2c4f2fff00ff02ff269527ff536354ffd4d6d4ff8485
84ff6e716eff69716aff627063ff575857ff39823cff00ff02ff00ac01ff
19661aff216f23ff2c4e2fff455947ff8f9590ff6e6e6eff494949ff2a2a
2aff0f0f0fca0707078c01010180000000000000002004040484343434ff
383838ffacacacff9b9e9bff2d462fff00ff02ff289e2aff4d654fffe2e4
e2ff949a95ff7c887dff5f5f5fff39823cff00ff02ff00d102ff0c340dff
010301ff010101ff1c201cff8d938eff6e736eff3f433fff222322ff0b0b
0b9e04040484000000600000006000000040000000200000002000000060
282828ff383838ff737373ffb6b7b6ff354937ff00ff02ff27a328ff375c
3affebecebff848584ff39823cff00ff02ff00f302ff124712ff030903ff
000000ff131514ff616461ff5d635dff3c403cff1c1d1cff090909940202
028100000060000000400000002000000000000000000000000000000000
00000040131313da383838ff494949ffdadbdaff435445ff00ff02ff24a8
25ff1d5d21ff00ff02ff00ff02ff00ff02ff28962aff39823cff2b312cff
272827ff505350ff5b605bff343834ff151715f808080890000000800000
006000000040000000200000000000000000000000000000000000000000
0000000000000000030303a2353535ff3a3a3affcfd0cfff5a675bff00ff
02ff00ff02ff00ff02ff00ff02ff29932bff4d8d4fffb8c4b9ffe5e8e5ff
a1a8a2ff585e59ff2e332eff0e100eb60404048400000060000000600000
004000000020000000000000000000000000000000000000000000000000
00000000000000000000000000000000282828ff383838ff848484ffbebf
beff324e34ff259827ff2a992bff5b985dffced6cfffe1e5e1ff8c958dff
535954ff222822ff0c0e0ca8020202810000006000000040000000200000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000383838ff5050
50fff0f0f0ffd9dad9ffd6dad6ffecefecffbcc5beff79847aff434a44ff
191f19ff090b0a9900000080000000600000004000000020000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
00003d3d3dfff0f0f0ffcecfceffadafadff656865ff363d37ff111712e7
040705880000008000000060000000400000002000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000009a9b9aff676867ff282828ff0b0b0bcf020202a1
000000600000006000000040000000200000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000ffff03fffffe03fffffe03ff
fffc03fffffc03fffff803fffff003fffff001ffffe0003fffc0000fffc0
0007ff800007ff800003ff000003fe000001fe000001fc000001f8000000
f8000000f0000000e0000000e0000000c0000000c0000000800000000000
000f0000007f000003ff00003fff0001ffff000fffff007fffff
)
VarSetCapacity( IconData,( nSize:=StrLen(IconDataHex)//2) )
Loop %nSize%
NumPut( "0x" . SubStr(IconDataHex,2*A_Index-1,2), IconData, A_Index-1, "Char" )
IconDataHex := ""
hICon := DllCall( "CreateIconFromResourceEx", UInt,&IconData+22, UInt,NumGet(IconData,14), Int,1, UInt,0x30000, Int,0, Int,0, UInt,0 )
VarSetCapacity(icon_info, 20, 0)
DllCall("GetIconInfo", ptr, hIcon, ptr, &icon_info)
NumPut(0, icon_info, 0) ; not_Icon
NumPut(0, icon_info, 4) ; xHotspot
NumPut(0, icon_info, 8) ; yHotspot
hCursor := DllCall("CreateIconIndirect", ptr, &icon_info)
ReplaceCursor(hEdit, hCursor)
Return
ReplaceCursor(hControl, hCursor) {
DllCall("SetClassLong" (A_PtrSize=8 ? "Ptr":""), "Ptr", hControl, "int", -12, "Ptr", hCursor)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment