首先要确认 R4 的版本
你会在开机三个正方选项的画面
左下方会找到 "v10x" 的东西这是你的 R4 内核版本 v107 以上才可进行更换skin 的功能 更新内核版本的方法详尽可于 R4 介绍时找到: ktz/viewthreadfpage=1&tid=796959 载入 SKIN 经上述的方法把内核升级后
用电脑 u 打开 R4 卡 我们现在尝试载入 skin 查找 R4 目录下的 _system_ 资料夹
打开后会发现 themes 的资料夹
先确认这个 themes 资料夹存唔存在
若不
请自行建立一个 然后
在 theme 的目录下
自行建立 "theme01"
"theme02""theme12" 这步骤是你有多少主题
就建立多少个 "themexx"的资料夹 基于月历模式的关系
用家最多只可创建 "12"个主题 最后把主题SKIN 放入创建的资料夹内
再把卡插回 NDS
大功告成 你会发现载入 NDS 开始画面会套用了你其中一个主题 手动转 SKIN 当第一次载入完成
NDS 会变为自动模式
跟随月份而产生那个月份的主题 即上述所提的12个"themexx" 资料夹 如果想自己转换主题又如何 当你开机后立即会进入选择模式
即有三个正方体的画面 然后按 "select"
画面会有"主题选择" 出现
进入"主题选择" 会有 "自动模式themexx / 手动模式themexx" 选择 你要一直按著 select->A
按到你想拣选的主题就可以 最后要说的是
你想放多少个主题
就开多少个themexx 不要有空资料夹! 例如有3个主题
一定要 "theme01"
"theme02"
"theme03" 转换SKIN / BG 方法 themexx 的目录里面应有四个文件 logobmp 、 iconsbmp 、 bckgrd_1bmp 和 bckgrd_2bmp ,这四个是 R4 操作界面的背景,里的内容可以自由更改。 logobmp -- R4 开机后的上屏背景 iconsbmp -- R4 开机后的下屏背景 bckgrd_1bmp -- R4 文件目录上屏背景 bckgrd_2bmp -- R4 文件目录下屏背景 注意:上以的文件名不可以更改,必须是 8 位或 24 位的 bmp 格式,大小必须是 256192 像素! 制作好自己须要内容后,把 _system_ 目录整体拷贝到 TF 卡根目录即可。
参考: 自己
我都吾知点解 不如你比D图我我帮你整
之后教你点放入去 你跟住放睇下得吾得啦囧
参考: 自己
现在越来越多的软件都有了很Cool的2D造型,什么×××× XP啦,×××× 2002之类的,看来争夺软件霸权的地位,2D界面是必不可少的,有很多人认为Visual Basic语言的先天不足导致它不能够很灵活的改变界面,让俺们来看看究竟吧。
如果大家用过《Windows优化大师》,肯定会被它的界面所倾倒,其实利用ActiveSkin 就可以办到,甚至更爽,但是如果要做的共享软件只是一个文件,在加上几个OCX累赘,似乎很是不爽,看看VB是怎么利用别的东东来实现的吧。
首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,
Name: LblBtn,
BorderStyle: 1,
Appearance: 0,
Alignment: 2,
这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label控件的Name属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码:
Private Const LBL_BACK_COLOR = &HE0E0E0 ’正常时Label控件的背景色
Private Const LBL_WHEN_MOUSE_MOVE = &HC0C0C0 ’鼠标移动时Label的背景色
Private Const LBL_WHEN_MOUSE_DOWN = &H808080 ’鼠标按下时Label的背景色
再在Form的Load事件中输入以下内容
Private Sub Form_Load()
Dim Count As Integer
For Count = 0 To 3 ’请将此出的3换成你的LblBtn数量的个数-1
LblBtn(Count)BackColor=LBL_BACK_COLOR ’初始化LblBtn的背景
Next Count
End Sub
然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:
Private Sub LblBtn_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ’当鼠标按在LblBtn上时
LblBtn(Index)BackColor = LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色
End Sub
Private Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ’鼠标在LblBtn上面移动时触发该事件
Dim Count As Integer
DoEvents ’暂时将系统控制权教给系统
If Button Then Exit Sub ’如果按钮被按下就退出该过程
For Count = 0 To 3
If Count <> Index Then ’如果按下的不是其它按钮
LblBtn(Index)BackColor = LBL_BACK_COLOR ’将背景设为正常
Else
LblBtn(Index)BackColor = LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景
End If
Next Count
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Count As Integer
DoEvents
For Count=0 To 3
LblBtn(Count)BackColor=LBL_BACKCOLOR ’恢复背景
Next Count
End
本来利用Windows的消息系统来完成这一“艰巨”的任务最简单,可问题就来了,Label控件没有窗口句柄怎么办?可是此问题与题无关,写了会有骗稿费之:)
OK,Label控件就讲到这里,在来说说TextBox控件,
各位看关恐怕看惯了白颜色的背景,那么就换换颜色以养养俺们那和绵羊一样的眼睛(为什么说绵羊?俺也不知道),可是VB提供的RGB函数弄出来的颜色不是怎么好看,这里俺来教大家一个小Tip,RGB函数的Red,Green,Blue这三个参数若一样,则产生的颜色是灰度,当然越接近白颜色越好,但也不能让各位看不出来,俺建议TextBox的背景为RGB(235,235,235),各位还是实战一下,将一个TextBox拖到窗体上,属性设置如下
Appearance 0
BorderStyle 1
MutilLine True
千万不要设置ScrollBars属性,否则会影响效果
在Form的Load事件中初始化TextBox
Dim bkColor As Long
Private Sub Form_Load()
bkColor=RGB(235,235,235)
Text1BackColor=bkColor
End Sub
在Form和Text1的MouseMove事件中:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1BorderStyle = 0
End Sub
Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
DoEvents
Text1BorderStyle = 1
End Sub
在按下F5试试是不是很Cool
可能各位看关玩过石器时代,一定会对里面的TextBox的效果感到很爽,VB还不是可以做到,有焦点的控件可以使用SetFocus方法来为其设置焦点,可是一个窗体上如果控件太多了,一个一个的用SetFocus是不是太傻了这一节的主角就是--------API函数,
首先声明:
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
但是这里的SetFocus会和控件的SetFocus会搞混淆,改改吧,
Private Declare Function nSetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
只要Alias指向的接口是对的前面的函数名称简直就是摆设,
在建立一个过程:
Public Function sSetFocus() As Long
Dim CPos As POINTAPI,Successfull As Boolean,hWnd As Long
DoEvents
Successfull =GetCursorPos(CPos)
If Not Successfull Then Exit Sub ’如果未成功则退出该过程
hWnd=WindowFromPoint(CPosx,CPosy)
sSetFocus=nSetFocus(hWnd)
End Sub
在窗体上放一个Timer控件,Interval 属性设为100,就是01秒,在Timer1控件的Timer事件中填入sSetFocus,在运行一下看看,效果怎么样
可是有的先生**要问了,TextBox难道就不能用ScrollBar吗非也非也,选 工程->部件->Microsoft Windows Common Controls-2 60 (SP3)就是你的答案,至于卷动TextBox就去研究SendMessage函数吧,否则又有骗稿费之嫌,如果想作绿色软件,不想用控件,可以用俺前面讲到的Label控件,利用字体 Webdings 来模拟ScrollBar,需要注意的是,如果模拟ScrollBar,上下左右箭头分别是5,6,3,4,别忘了把字体设为Webdings
再来讲讲窗体的美化,其实将BorderStyle属性设为0就是很好的2D美化;)可是,这样一来,问题又来了,怎么办凡事都要请API来帮忙,这里需要两个API,一下是该API的声明:
Public Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Long '这个API是用来解下鼠标的追踪器,关于他的过多用法以及详细介绍可以写信向俺咨询,
还有
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long’这个该不要俺多介绍了吧
Public Const HTCAPTION = 2 ’代表窗体的标题区
Public Const WM_NCLBUTTONDOWN = &HA1 ’表示非工作区左键按下
原理很简单,卸下鼠标追踪器后向Form发送一个移动窗体的消息,其实做到这一点的方法很多,但俺个人认为这一种最简单,添加一个过程:
Public Sub MoveForm(hWnd As Long)
DoEvents
ReleaseCapture
SendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Sub
在Form的MouseMove事件中:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button=vbLeftButton Then MoveForm hWnd’如果按下鼠标左键就移动窗体
End Sub
台下的这位**又纳闷了,可是光秃秃的窗体没有了标题栏也不好看,俺要向这为**推荐俺的东东-ActiveX控件,ToolSign,需要的人可以写信给俺联系,
该控件需要在代码编辑区域内添加一下代码:
’一下声明是用在ToolSign的 AutoQuit属性的
Public Const EXIT_FORCE = 2 ’注意,在VB中运行的时候如果选用此退出方式,VB也会退出
Public Const EXIT_MESSAGE = 1 ’由操作系统发送关闭消息
Public Const EXIT_CUSTOM = Not (EXIT_FORCE Or EXIT_MESSAGE) ’自定义
将其注册后在部件栏中把e-Dogkid Studio Tools Sign打钩,添加到工具箱中,双击加入到窗体中,
在Form的Load事件中添加一下初始化代码:
Private Sub Form_Load()
With Sign1
AutoQuit = EXIT_CUSTOM
ParentsHWND = hWnd ’填了此属性可以直接用ToolSign来移动窗体而不需要前面的代码
End With
End Sub
Sign1的Click事件
Private Sub Sign1_Click()
End ’关闭程序
End Sub
在Form的Resize事件中添加一下代码:
Private Sub Form_Resize()
Sign1Width = Width
End Sub
如果想让窗体可以改变大小,可以修改一下属性
Caption ""
BorderStyle 2或5
ControlBox False
实际情况如图
不知道各位看关见过爆炸试的窗体没有,没有见过可以从俺要另外一个俺自己的ActiveX DLL,我的那个东东其实是给我的Software作运行库的,各位若不嫌弃,可以用用,注册后在工程->引用->e-Dogkid Runtime Library
然后在窗体Load事件中输入:
Private Sub Form_Load()
Dim System As e_Dogkid_Runtime_LibrarySystem
Set System = New e_Dogkid_Runtime_LibrarySystem
Show
SystemBoomIt hDC, 60, Width, Height, Left, Top
Set System = Nothing
End Sub
你说的自己做皮肤应该是比如给按钮添加给背景添加以及其他一些按钮等的交互吧MFC直接支持的皮肤是BMP文件格式的将文件载入为资源IDB_BMP_XXX使用按钮的时候(先添加按钮到你的界面中哈,命名为IDC_BUTTON_XXX)在按钮属性里面设置OWNER
DRAW以及BMP然后在xxxdlgh中定义CBitmapButton类型的对象btn_Button在XXXdlgcpp的DoDataExChange中添加代码DDX_Control(pDX,IDC_BUTTON_XXX,btn_Button)最后在OnInitDialog()中添加代码btn_ButtonLoadBitmaps(IDB_BMP_XXX)详细的设置可以查阅CSDN,MSDN至于背景采用的方法也很简单也能够CPicture或者::Load函数
1 C++的代码错误容易引起安全问题,造成内存泄漏,运行出错。C#的代码错误容易引起性能问题。如果追求性能,用C++,如果追求安全,用C#。
2 C++的开发难度高,开发周期较长,但是运行效率高;C#的开发难度低,开发效率高,运行效率低;
3 C++注重实现功能,只要时间充裕,可以实现非常强大的功能;C#更加注重软件工程的应用,各种设计模式的使用,面向对象,是现代软件工程的思想体现。适合企业内高效的开发模式;
4 C++的MFC界面编程难度较高,美化界面需要大量代码的支持。C#的WPF的界面编程很简单,界面代码与程序代码分开,界面可使用可视化设计程序,如Expression Blend设计。
5 C++对串口,网络TCP,数据库方便的编程都支持,但是没有现成的完整类库调用,需要大量代码支持。 C#中这些都已经有类库,直接调用即可。代码量少很多。
6 C++打造界面像使用画笔画图,想怎么画就怎么画,结果取决于画家的功力;C#打造界面像使用Photoshop画图,不会画画的人也能画出一些精美来。
直接换成WIN7系统界面也就跟着变了,但是你把编写好的程序发送给XP用户界面也就变回来了。
你也可以安装VBNET,NET的控件都很漂亮
或者使用VB Skin控件,可以导入she格式的皮肤,但是总体非常坑爹,有或多或少的BUG
当然,你也可以学学DirectX,直接在窗体上渲染按钮,如上图
如果你只是做做小程序,就按照原先的样式来吧
建议用第三方控件,同时也希望你学点GDI+方面的知识,必竟全用人家的东东也会受制约的。如果有现地方你不满意你就可以自己做点修改,像下面这种窗体是用第三方控件也可以自己用GDI+封装。控件的工程量太大了所以用了第三方的。比如我这窗体的新增客户是自己做的组合控件,无非就是用第三方控件有的控件组合下。再配合GDI+做做修饰就有这样的效果了。
欢迎分享,转载请注明来源:品搜搜测评网