cskin源碼
A. 怎樣搭建一個android開發框架
搭建Android開發環境
准備工作:下載Eclipse、JDK、Android SDK、ADT插件
下載地址:Eclipse:http://www.eclipse.org/downloads/
JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html
Android SDK:http://developer.android.com/sdk/index.html
ADT:http://developer.android.com/tools/sdk/eclipse-adt.html
1、安裝和配置JAVA開發環境:
①把准備好的Eclipse和JDK安裝到本機上(最好安裝在全英文路徑下),並給JDK配置環境變數,其中JDK的變數值為JDK安裝路徑的根目錄,如我的為:D:\Program Files\Java\jdk1.7.0_02;
②打開命令提示符(cmd),輸入java -version命令,顯示如下圖則說明JAVA環境變數已經配置好了。
2、安裝ADT插件:
①打開已安裝好的Eclipse,選擇菜單欄上的「Help」->在彈出的下拉框中單擊選擇「Install new software...」;
②在新打開的對話框中我們完全可以直接在"Work with"中輸入:https://dl-ssl.google.com/android/eclipse/在線安裝ADT插件,但由於Google的伺服器搭建在國外,所以通過這種方式安裝起來會比較慢,而且可能會出現人品差死活裝不上的情況,所以不推薦在線安裝。
③我推薦直接通過下載好的ADT插件壓縮包進行安裝(此種方式可以在離線環境下進行)。具體步驟是:在新打開的對話框中點擊「Add」按鈕->在打開的對話框中點擊「Archive」按鈕選擇之前已經下載好保存在本地硬碟的ADT插件壓縮包,至於上面的「Name」可以隨便取,這只是一個代號而已,沒什麼實際作用。
④在上一步中點擊「Ok」按鈕後我們會發現中間的空白處出現了兩行復選框,單擊"Select All"按鈕選中所有的復選框,這步過後一路「Next」,需要「Accept」的就選中「Accept」,直到點擊「Finish」結束,這樣ADT插件就安裝好了。整個過程需要的時間視機器性能而定。安裝好ADT插件後,Eclipse的工具欄會出現一排Android的圖標,如下圖:
3、安裝SDK:
①把下載好的Android SDK安裝到本機上(最好安裝在全英文路徑下),並為Android SDK配置環境變數。Android SDK的環境變數值為SDK安裝目錄下的platform-tools文件夾和tools文件夾子目錄路徑,如我的分別為:E:\My Studying\Android\android-sdk\platform-tools、E:\My Studying\Android\android-sdk\tools,在變數值中,兩個路徑用逗號隔開。
②打開命令提示符(cmd),分別輸入android -h和adb命令,顯示如下圖則說明Android SDK環境變數已經配置好了。
③打開Android SDK的安裝目錄,雙擊 "SDK Manager"->在打開的窗口中先選擇你需要安裝的SDK版本,其中「Status」表示該SDK包是否安裝,如我選的是「Android2.2(API 8)」(我的之前已經安裝過了,所以「Status」為「Installed」)->再點擊「Install packages...」按鈕,在彈出來的窗口中最好選「Accept All」這樣才能安裝你剛才選的所有的包->最後點「Install」按鈕就開始安裝了,整個過程會很慢,這需要你的耐心。
另外我們還可以通過在Eclipse上的工具欄中點擊下圖指示的圖標打開「SDK Manager」然後進行安裝,這樣和上面的SDK安裝方式一樣,就不累述了。
④最後再選擇Eclipes主菜單上的"Windows"->選擇"preferrnces";
⑤在彈出來的對話框中選中左邊欄的「Android」->通過右側的「Browse...」按鈕選擇SDK的安裝路徑根目錄->點擊最下方的「Ok」按鈕,這樣SDK就在Eclipse上載入成功了。
4、創建Android模擬器(AVD):
①打開Eclipse->在Eclipse的工具欄上單擊下圖指示的圖標打開「Android Virsual Device Manager」窗口;
②在「Android Virsual Device Manager」窗口單擊「New」按鈕->在彈出來的窗口中"Name"可以隨便取;「Target」指模擬器的系統版本;「SD Card」的"size"是指手機存儲卡的大小,只要你不在模擬器上裝太多的應用,一般給個二三十MB就夠了;「Skin」是指屏幕的解析度大小,其中「Built in」是一般手機常用標准屏幕解析度大小,而「Resolution」是自定義屏幕解析度大小,具體做法,可以根據自身情況選擇。->一切設置好後點擊「Create AVD」,這時一個模擬器就創建好了。如果有必要,我們可以創建多個模擬器用於測試時使用。
附:Android模擬器型號以及其對應的解析度大小:
Standard Width Height DAR Pixeis
HVGA 480 * 320 3:2 153,600
QVGA 320 * 240 4:3 76,800
WQVGA400 400 * 240 5:3 96,000
WQVGA432 432 * 240 9:5 103,680
WVGA800 800 * 480 5:3 384,000
WVGA852 854 * 480 409,920
至此為止,在Eclipse上就已經成功搭建Android開發環境了。
B. C# 實現虛擬鍵盤
自帶是沒有的,不過如果是WinForm推薦使用cskin皮膚庫。
這里分享一個例子的源碼,開發者模擬的騰訊QQ登錄頁面做的,裡面密碼是可以調用虛擬鍵盤。
但是這里的虛擬鍵盤也只能使用拼音,手寫的比較難實現。
C. 這個網址的源碼是什麼
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>韓雪冬_BLOG :::web design:::-::: kaven 個人 flash 網站設計 ::: 網站建設 ::: 網頁設計</title>
<META name="Author" content="ExoBUD, Jin_woong Eu,辣辣箭">
<META name="Keywords" content="ExoBUD™ MP,網頁播放器">
<META name="Description" content="INetCasting(asf,wma,mp3,avi,wav),韓雪冬個人網站">
<LINK rel="stylesheet" href="exobud.css" type="text/css">
<style type="text/css">
<!--
.time {behavior: url(#default#time2);}
body {
background-color: #000000;
}
-->
</style>
</head>
<!--
//***************************************************************************************
// 版權所有。
// 請尊重智慧財產權: 無論您對本程序 ExoBUD MP(II) 作任何修改、製作(或翻譯)面板,請您
// *必須*保留此段版權信息的內容,包括程序(及面板)原作者及中文漢化作者的名字和網站鏈接。
//
// 請不要將程序(或面板)原作者或中文漢化作者的名字改成您自己的名字,
// 然後以另一程式名稱重新命名後在網上公開發表及散播本程式,因為這是嚴重的侵權行為。
//
// 這是免費程序,所以請不要使用在商業用途上。
// 另外,您也不可將本程序(全部或部份)復制到其他儲存媒體(例如光碟)上作販賣獲利用途。
//
// 申明:因為使用本程序對你造成任何後果,程序原作者及中文漢化作者均不用對其負責。
//
//---------------------------------------版權信息---------------------------------------
// ExoBUD? MP(II) v5.8 Rhapsody.?-Skined [wmp-obj v7.1/v9]
// (C)Copyright 1998-2006 ExoBUD? All Right Reserved.
// Homepage : http://cyworld.com/exobud , http://exobud.nayana.com
// E-Mail : [email protected]
// ICQ : 96138429 (authorization mode)
//-------------------------------------------------------------------------------------
// Graphic Design (by Rhapsody.?)
// (C)Copyright Rhapsody.? All Right Reserved.
// msn : [email protected]
// Homepage : http://www.intorock.com
//-------------------------------------------------------------------------------------
// 簡體中文漢化: 辣辣箭
// 網站: http://www.cuiz.net
// 電子郵箱: [email protected]
// OICQ號碼: 79342254
// 發表日期: 2006-11-11
//***************************************************************************************-->
<SCRIPT Language ="JavaScript" src="sys/viewobj.js"></SCRIPT><!-- 載入Windows Media Player控制項程序 -->
<SCRIPT Language="JavaScript" src="sys/exobud.js"></SCRIPT><!-- 載入 ExoBUD MP(II) 主程序 -->
<SCRIPT Language="JavaScript" src="config.js"></SCRIPT><!-- 載入 config.js 基本設置程序 -->
<SCRIPT Language ="JScript" src="sys/imgchg.js"></SCRIPT><!-- 載入「動態按鈕圖片切換」程序文件 -->
<SCRIPT Language="JavaScript" src="addlist.js"></SCRIPT><!-- 載入 ExoBUD MP(II) 播放歌曲列表設定文件 -->
<SCRIPT Language ="JScript" FOR=Exobud EVENT=openStateChange(sf)> evtOSChg(sf); </SCRIPT>
<SCRIPT Language ="JScript" FOR=Exobud EVENT=playStateChange(ns)> evtPSChg(ns); </SCRIPT>
<SCRIPT Language ="JScript" FOR=Exobud EVENT=error()> evtWmpError(); </SCRIPT>
<SCRIPT Language ="JScript" FOR=Exobud EVENT=Buffering(bf)> evtWmpBuff(bf); </SCRIPT>
<body onLoad="initExobud();" onContextMenu="return false" onDragStart="return false" onselectstart="return false" style="overflow:hidden;" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0><span align="center" id="loadingBar" style="width:100%;position:absolute; left:0px; top:2px; z-index:1;"><p align="center"><img src="img/loading.gif" align="middle" border="0"></p></span>
<table id="Table_01" width="100%" height="23" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<img src="img/plastic-ii_01.gif" width="2" height="23" alt=""></td>
<td>
<img name="iexobud" src="img/btn_exobud_ovr.gif" width="154" height="23" onClick="vizExobud()" style="cursor:hand;" title="首頁"></td>
<td>
<img name="prevt" src="img/btn_prev.gif" width="19" height="23" onClick="playPrev();this.blur();" onMouseOver="imgtog('prevt',2);" onMouseOut="imgtog('prevt',3)" style="cursor:hand;" title="上一首"></td>
<td>
<img name="playt" src="img/btn_play.gif" width="19" height="23" onClick="startExobud();this.blur();" style="cursor:hand;" title="播放"></td>
<td>
<img name="pauzt" src="img/btn_pauz_off.gif" width="19" height="23" onClick="wmpPP();this.blur();" style="cursor:hand;" title="暫停/繼續"></td>
<td>
<img name="stopt"src="img/btn_stop.gif" width="19" height="23" onClick="wmpStop();this.blur();" onMouseOver="imgtog('stopt',2);" onMouseOut="imgtog('stopt',3)" style="cursor:hand;" title="停止"></td>
<td>
<img name="nextt" src="img/btn_next.gif" width="19" height="23" onClick="playNext();this.blur();" onMouseOver="imgtog('nextt',2);" onMouseOut="imgtog('nextt',3)" style="cursor:hand;" title="下一首"></td>
<td>
<img src="img/plastic-ii_08.gif" width="37" height="23" alt=""></td>
<td width="80" background="img/plastic-ii_09.gif" align="center" onClick="chgTimeFmt();this.blur();" nowrap><span id="disp2" width=168 class="time" align="right" title ="正常/倒序" style="position:relative;top=0;cursor:hand;left:-2px; top:-0px;">00:00 | 00:00</span> </td>
<td>
<img src="img/plastic-ii_10.gif" width="8" height="23" alt=""></td>
<td width="60%" background="img/plastic-ii_11.gif" align="left" valign="top" nowrap><marquee behavior="scroll" width="99%" scrolldelay=30 scrollamount=1 truespeed><span id="disp1" class="title" style="width:0px; height:0px; position:relative; cursor:default; left:0; top:5px; z-index:1;">welcome to http://www.kaven115.com</span>
</marquee> </td>
<td>
<img src="img/plastic-ii_12.gif" width="38" height="23" alt=""></td>
<td>
<img name="plist" src="img/btn_plist.gif" width="18" height="23" onClick="openPlist();this.blur();" onMouseOver="imgtog('plist',2);" onMouseOut="imgtog('plist',3)" style="cursor:hand;" title="歌曲清單"></td>
<td>
<img name="pmode" src="img/btn_rndmode_off.gif" width="19" height="23" onClick="chgPMode();this.blur();" style="cursor:hand;" title="播放順序"></td>
<td>
<img name="tloop" src="img/btn_trkloop_off.gif" width="19" height="23" onClick="chgTrkLoop();this.blur();" style="cursor:hand;" title="切換是否循環播放所選歌曲"></td>
<td>
<img name="vmute" src="img/btn_mute_off.gif" width="19" height="23" onClick="wmpMute();this.blur();" style="cursor:hand;" title="靜音"></td>
<td>
<img name="rept" src="img/btn_rept_off.gif" width="19" height="23" onClick="chkRept();this.blur();" style="cursor:hand;" title="切換是否重復播放當前歌曲"></td>
<td>
<img src="img/plastic-ii_18.gif" width="86" height="23" alt=""></td>
<td width=72><iframe name="音量"src="add_vol/exobud_vol.html" height="23" width="72" leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" frameborder="0" scrolling="no" title="音量- +"></iframe></td>
<td>
<img src="img/plastic-ii_20.gif" width="3" height="23" alt=""></td>
<td>
<img src="img/plastic-ii_21.gif" width="3" height="23" alt=""></td>
<TD><IMG name="rwdt" src="img/btn_rwd.gif" width=21 height=35 border=0 onMouseDown="fastRew();imgChange('rwdt',1);" onMouseUp="endRew();imgChange('rwdt',0);" onMouseOver="imgChange('rwdt',2);" onMouseOut="imgChange('rwdt',0);" title="FastReward" style="display:none;cursor:hand;"></TD>
<TD><IMG name="fwdt" src="img/btn_fwd.gif" width=21 height=35 border=0 onMouseDown="fastFwd();imgChange('fwdt',1);" onMouseUp="endFwd();imgChange('fwdt',0);" onMouseOver="imgChange('fwdt',2);" onMouseOut="imgChange('fwdt',0);" title="FastForward" style="display:none;cursor:hand;"></TD>
</tr>
</table>
<TABLE width=100% height=0 border="0" cellspacing="0" cellpadding="0">
<TR>
<TD height=0>
<SCRIPT Language="JavaScript" src="sys/caption.js"></SCRIPT>
</TD>
</TR>
</TABLE>
</div>
<script language="javascript">
document.all.loadingBar.style.display="none";
document.all.divBody.style.display="";
</script>
</body>
</html>
MP3地址:http://www.zhenruifang.com/blog/music/Mad%20world.mp3
D. 在Winform窗體中,開發了一個給窗體換皮膚的組件
思路是:在窗口的close事件中把當前的皮膚保存下來,可以是文件,注冊表,或是資料庫里,在啟動的時候從這些保存的地方讀上次保存的結果,沒有則使用默認的
E. 求一個學校網站首頁的源代碼
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="generator" content="貴州省">
<meta name="keywords" content="凱里一中歡迎您!">
<meta name="description" content="首頁">
<title>凱里一中 - 首頁 - 凱里一中歡迎您!</title>
<link rel="shortcut icon" href="/images/favicon.ico">
<link type="text/css" href="/Skin/Skin_1.css" rel=stylesheet>
<script language=javascript src="/style/YSvoid_Functions.js"></script>
<script language=javascript src="/style/YSvoid_Title.js"></script>
<body topmargin=0 leftmargin=0>
<center>
<OBJECT style="WIDTH: 965px; HEIGHT: 190px" codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0 height=198 width=1000 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 196px? HEIGHT: 100%?;><PARAM NAME="_cx" VALUE="26458"><PARAM NAME="_cy" VALUE="5239"><PARAM NAME="FlashVars" VALUE=""><PARAM NAME="Movie" VALUE="/Upload/htmledit/2008812205023787.swf"><PARAM NAME="Src" VALUE="/Upload/htmledit/2008812205023787.swf"><PARAM NAME="WMode" VALUE="Window"><PARAM NAME="Play" VALUE="-1"><PARAM NAME="Loop" VALUE="-1"><PARAM NAME="Quality" VALUE="High"><PARAM NAME="SAlign" VALUE=""><PARAM NAME="Menu" VALUE="-1"><PARAM NAME="Base" VALUE=""><PARAM NAME="AllowScriptAccess" VALUE=""><PARAM NAME="Scale" VALUE="ShowAll"><PARAM NAME="DeviceFont" VALUE="0"><PARAM NAME="EmbedMovie" VALUE="0"><PARAM NAME="BGColor" VALUE=""><PARAM NAME="SWRemote" VALUE=""><PARAM NAME="MovieData" VALUE=""><PARAM NAME="SeamlessTabbing" VALUE="1"><PARAM NAME="Profile" VALUE="0"><PARAM NAME="ProfileAddress" VALUE=""><PARAM NAME="ProfilePort" VALUE="0"><PARAM NAME="AllowNetworking" VALUE="all"><PARAM NAME="AllowFullScreen" VALUE="false">
<embed src='/Upload/htmledit/2008812205023787.swf' quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width="100%"
height=300>/Upload/htmledit/2008812205023787.swf</embed></OBJECT>
<TABLE borderColor=#000000 cellSpacing=2 cellPadding=3 width=965 bgColor=#ffffff border=0 heihgt="">
<TBODY>
<UL id=menuItem 99%?;>
<P align=center><li id='menuHome'><li id='menuHomes'><a href='/'><span>首頁</span></a></li></li>
<li id='menuNews'><a href='/News/'><span>學校新聞</span></a> </li>
<li id='menuArticle'><a href='/Article/'><span>德育之窗</span></a> </li>
<li id='menuBaiNian'><a href='/BaiNian/' title='學校簡介'><span>學校概況</span></a> </li>
<li id='menuxiaoyou'><a href='/xiaoyou/' title='歡迎新老校友常來看看'><span>校友天地</span></a> </li>
<li id='menuBuMeng'><a href='/BuMeng/'><span>部門時訊</span></a> </li>
<li id='menuZhaoSheng'><a href='/ZhaoSheng/' title='關於考試'><span>招生錄取</span></a> </li>
<li id='menuJiaoYan'><a href='/JiaoYan/' title='關於教學'><span>教研教學</span></a> </li>
<li id='menuShiZill'><a href='/ShiZill/' title='師資力量'><span>師資力量</span></a> </li>
<li id='menuDown'><a href='/Down/'><span>試題資源</span></a> </li>
<li id='menuVideo'><a href='/Video/'><span>一中視頻</span></a> </li>
<li id='menuPhoto'><a href='/Photo/'><span>校園圖庫</span></a> </li>
<li id='menuForum'><a href='/Forum/'><span>論 壇</span></a> </li>
<P></P>
<UL></UL>
<DIV></DIV>
<P></P>
<UL></UL>
<P></P>
<UL></UL>
<P></P>
<UL></UL>
<P></P>
<UL></UL>
<P></P>
<UL></UL></P></UL></TBODY>
<TBODY>
<DIV id=headFind>
<DIV id=headForm><SPAN id=menuFind>今天是:2009年5月27日星期三 | 您現在位於:<A class=h_menu href="http://172.16.1.167:81/Editor//">網站首頁</A> → <font title='首頁'>首頁</font></SPAN> </DIV></DIV></TBODY></TABLE>
<DIV></DIV><TBODY></TBODY></TABLE>
<table border=0 width="965" cellspacing=0 cellpadding=0>
<tr>
<td width=* align=center class=bg>
<table border=0 width='100%' cellspacing=0 cellpadding=0>
<tr>
<td align=center>
<!---------------------------------登陸、新聞、文章、調查、公告、搜索 開始--------------------------------->
<table border=0 cellspacing=0 cellpadding=0 width="100%">
<tr valign=top>
<td width='74%' height="49">
<table border=0 cellspacing=0 cellpadding=0 width='100%'>
<tr valign=top>
<td><table width="100%" border=0 cellpadding=0 cellspacing=0>
<tr valign=top>
<td width='25%'><table border=0 cellspacing=0 cellpadding=0 width='100%'>
<tr>
<td width='25%'><script language="JavaScript" src="/style/YSvoid_keyboard.js" type="text/javascript"></script>
<table cellspacing=1 cellpadding=1 class=table_Home>
<TBODY>
<TR>
<TD class=td0_Home>用戶登陸</TD></TR>
<TR class=bg_td>
<TD align=middle>
<TABLE border=0 cellspacing=0 cellpadding=2>
<FORM name=login_frm onSubmit="return login_true()" action=/User/login.asp?action=login_chk method=post>
<INPUT type=hidden value=yes name=chk>
<INPUT type=hidden value=yes name=re_log>
<TBODY>
<TR>
<TD>用戶名:</TD>
<TD><INPUT type=text class=username size=18 name=username maxlegth="20" title="用戶名,輸入正確的用戶名"></TD></TR>
<TR>
<TD>密 碼:</TD>
<TD><INPUT class=password type=password size=18 name=password maxlegth="20" onclick="showkeyboard('login_frm.password')" title="用軟鍵盤輸入密碼,防止黑客軟體記錄鍵盤的錄入信息,如不使用鍵盤可直接輸入密碼!"></TD></TR>
<tr>
<td>驗證碼:</td>
<td><input type=text class=txt name=CodeStr maxlength=4 size=4><img src='/Include/YSvoid_GetCode.asp' align=absMiddle title= '驗證碼,看不清楚。請點擊刷新驗證碼!' onclick="this.src='/Include/YSvoid_GetCode.asp'"></td>
</tr>
<tr>
<td height="3"></td>
</tr>
<TR>
<TD align=middle colSpan=2>
<A href="/User/register.asp"><img src="/Skin/Skin_1/main/user_login_butreg.gif" border=0 title="注冊用戶,點這里可以注冊新用戶"></A>
<INPUT onclick="jacascript:return login_true();" type=image src="/Skin/Skin_1/main/user_login_button.gif" align=absMiddle border=0 title="用戶登陸,請輸入正確的用戶名、密碼、驗證碼再登陸網站">
<A style="CURSOR: help" href="/User/Getpass.asp"><img src="/Skin/Skin_1/main/user_login_key.gif" border=0 title="忘記密碼,點這里可以找回自己的密碼"></A></TD></TR>
<tr>
<td height="3"></td>
</tr>
<TR>
<TD align=middle colSpan=2><A href="/User/register.asp?action=resend" alt="重新發送一次我的注冊驗證郵件!">發送注冊郵件</A> <INPUT class=bg_td id=id_memery_info type=checkbox value=yes name=memery_info><LABEL id=label_memery_info for=id_memery_info alt="如選擇「記住密碼」登陸,以後將自動登陸本站!">記住密碼</LABEL></FORM></TABLE></TD></TR></TBODY></TABLE>
<table border=0><tr><td height=3></td></tr></table></td>
<tr valign=top>
<td><table cellspacing=1 cellpadding=2 class=Table_Home>
<TR>
<TD class=td0_Home>德育之窗</TD></TR>
<tr class=bg_Home><td align=center>
<tr height=20><td><B>·</B><a href='Article/view.asp?id=71' style="color:FF0000;" title='德育之窗標題:凱里一中德育簡報[ 2009 ] 第二期 總18期
發 布 人:klyzren
瀏覽次數:180 人次
整理時間:2009-4-27 22:03:21' target=_blank> 凱里一中德育簡報[ 2009 ] 第二...</a></td></tr>
<tr height=20><td><B>·</B><a href='Article/view.asp?id=64' style="color:0000FF;" title='德育之窗標題:凱里一中德育簡報[ 2009 ] 第一期 總17期
發 布 人:klyzren
瀏覽次數:261 人次
整理時間:2009-4-10 13:10:56' target=_blank> 凱里一中德育簡報[ 2009 ] 第一...</a></td></tr>
<tr height=20><td><B>·</B><a href='Article/view.asp?id=26' style="color:FF0000;" title='德育之窗標題:凱里一中校園文化
發 布 人:klyzren
瀏覽次數:1352 人次
整理時間:2008-10-6 21:33:11' target=_blank> 凱里一中校園文化</a></td></tr>
<tr height=20><td><B>·</B><a href='Article/view.asp?id=23' style="color:;" title='德育之窗標題:以學生為本構建新型的師生關系
發 布 人:klyzboy
瀏覽次數:736 人次
整理時間:2008-9-25 9:30:50' target=_blank> 以學生為本構建新型的師生關...</a></td></tr>
<tr height=20><td><B>·</B><a href='Article/view.asp?id=20' style="color:;" title='德育之窗標題:文以載道,以道育人
發 布 人:klyzboy
瀏覽次數:715 人次
整理時間:2008-9-24 21:59:51' target=_blank> 文以載道,以道育人</a></td></tr>
<tr height=20><td><B>·</B><a href='Article/view.asp?id=19' style="color:;" title='德育之窗標題:淺談班主任工作中的德育教育
發 布 人:klyzboy
瀏覽次數:784 人次
整理時間:2008-9-24 21:54:46' target=_blank> 淺談班主任工作中的德育教育</a></td></tr>
</td></tr>
</table>
<table border=0><tr><td height=3></td></tr></table></td>
</tr>
</table></td>
<td width='1%'></td>
<td width='47%'><table border=0 cellspacing=0 cellpadding=0 width='100%'>
<tr valign=top>
<td>
<table cellspacing=1 cellpadding=2 class=Table_Home>
<TR>
<TD class=td0_Home>凱里一中新聞</TD></TR>
<tr class=bg_Home><td align=center>
<table border=0 width='100%'><tr><td align=center>
<table border=0 width='100%'>
<tr>
<td>
<script type="text/javascript">
<!--
var swf_width='450'
var swf_height='282'
var files='/Upload/htmledit/2009516132544327.jpg|/Upload/htmledit/2009427215449568.jpg|/Upload/htmledit/200949173335244.jpg|/Upload/News/2008-12/2008122820595390801.jpg|/Upload/News/2008-12/2008121123323240865.jpg'
var links='News/view.asp?id=531|News/view.asp?id=507|News/view.asp?id=459|News/view.asp?id=405|News/view.asp?id=402'
var texts='學校舉行各項文藝活動|「春蕾行動」暖學子|我校榮獲凱里市第三屆中小學生運動會高中組團體總分第...|凱里一中田徑運動場落成典禮暨2008年運動會|凱里一中紀念改革開放30周年暨「一二.九」學生愛國運動...'
var TitleBgAlpha='70'
var TitleBgPosition='30'
var Tween='2'
var AutoPlayTime='120'
var WinOpen='_blank'
var TitleTextColor='0xFFFFFF'
var TitleBgColor='0x000000'
var BtnDefaultColor='0x000000'
var BtnOverColor='0x000033'
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ swf_width +'" height="'+ swf_height +'">');
document.write('<param name="movie" value="/images/small/index_news.swf"><param name="quality" value="high">');
document.write('<param name="menu" value="false"><param name=wmode value="opaque">');
document.write('<param name="FlashVars" value="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'&TitleBgAlpha='+ TitleBgAlpha +'&TitleBgPosition='+ TitleBgPosition +'&Tween='+ Tween +'&AutoPlayTime='+ AutoPlayTime +'&WinOpen='+ WinOpen +'&TitleTextColor='+ TitleTextColor +'&TitleBgColor='+ TitleBgColor +'&BtnDefaultColor='+ BtnDefaultColor +'&BtnOverColor='+ BtnOverColor +'>');
document.write('<embed src="/images/small/index_news.swf" wmode="opaque" FlashVars="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'&TitleBgAlpha='+ TitleBgAlpha +'&TitleBgPosition='+ TitleBgPosition +'&Tween='+ Tween +'&AutoPlayTime='+ AutoPlayTime +'&WinOpen='+ WinOpen +'&TitleTextColor='+ TitleTextColor +'&TitleBgColor='+ TitleBgColor +'&BtnDefaultColor='+ BtnDefaultColor +'&BtnOverColor='+ BtnOverColor +'& menu="false" quality="high" width="'+ swf_width +'" height="'+ swf_height +'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
document.write('</object>');
-->
</script>
</td></tr><tr>
<td>
<table border=0 width='100%'>
<tr align=center>
<td><table border=0 cellspacing=0 cellpadding=0 width='100%'><tr><td height=20><B>·</B><a href='News/view.asp?id=529' style="color:0000FF;" title='新聞標題:凱里一中足球特招考核成績登記表
發 布 人:klyzren
瀏覽次數:146 人次
整理時間:2009-5-11 17:41:16' target=_blank>凱里一中足球特招考核成績登...</a></tr></td></table></td>
<td><table border=0 cellspacing=0 cellpadding=0 width='100%'><tr><td height=20><B>·</B><a href='News/view.asp?id=526' style="color:0000FF;" title='新聞標題:致校友的一封信(校慶公告一)
發 布 人:klyzren
瀏覽次數:170 人次
整理時間:2009-5-6 20:58:36' target=_blank>致校友的一封信(校慶公告一...</a></tr></td></table></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr></table>
</td></tr>
</table>
<table border=0><tr><td height=3></td></tr></table>
</td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
</td>
<td width='1%'></td>
<td width='25%'>
<table border=0 cellspacing=0 cellpadding=0 width='100%'>
<tr valign=top>
<td><table cellspacing=1 cellpadding=2 class=Table_Home>
<TR>
<TD class=td0_Home>學校公告</TD></TR>
<tr class=bg_Home><td align=center>
<tr>
<td height=21><B>·</B><a href='/Common/Update.asp?Action=&id=7' target_blank title='公告標題:通知(關於天氣)
發布時間:2008-12-23 12:49:02
點擊瀏覽詳細……'>通知(關於天氣)</a></td>
</tr>
<tr>
<td height=21><B>·</B><a href='/Common/Update.asp?Action=&id=6' target_blank title='公告標題:致同學們的一封信
發布時間:2008-10-15 13:44:48
點擊瀏覽詳細……'>致同學們的一封信</a></td>
</tr>
<tr>
<td height=21><B>·</B><a href='/Common/Update.asp?Action=&id=4' target_blank title='公告標題:國慶放假通知
發布時間:2008-10-13 18:21:29
點擊瀏覽詳細……'>國慶放假通知</a></td>
</tr>
<tr>
<td height=21><B>·</B><a href='/Common/Update.asp?Action=&id=1' target_blank title='公告標題:凱里一中網站改版
發布時間:2008-8-4 15:48:26
點擊瀏覽詳細……'>凱里一中網站改版</a></td>
</tr>
</td></tr>
</table>
<table border=0><tr><td height=3></td></tr></table></td>
</tr>
<tr valign=top>
<td width='50%'><table cellspacing=1 cellpadding=2 class=Table_Home>
<TR>
<TD class=td0_Home>試題資源</TD></TR>
<tr class=bg_Home><td align=center>
<tr height=20><td><B>·</B><a href='Down/view.asp?id=47' style="color:;" title='試題資源標題:競賽數學訓練題目
發 布 人:jswei85
瀏覽次數:33 人次
整理時間:2009-4-13 16:40:48' target=_blank> 競賽數學訓練題目</a></td></tr>
<tr height=20><td><B>·</B><a href='Down/view.asp?id=45' style="color:;" title='試題資源標題:高三歷史中國古代史專題復習:中國古代民族關系和對外關系人教版知識精講
發 布 人:klyzren
瀏覽次數:16 人次
整理時間:2009-3-27 15:34:52' target=_blank> 高三歷史中國古代史專題復習:...</a></td></tr>
<tr height=20><td><B>·</B><a href='Down/view.asp?id=44' style="color:;" title='試題資源標題:高二語文《蘭亭集序》北京版知識精講
發 布 人:klyzren
瀏覽次數:18 人次
整理時間:2009-3-27 15:32:46' target=_blank> 高二語文《蘭亭集序》北京版知...</a></td></tr>
<tr height=20><td><B>·</B><a href='Down/view.asp?id=43' style="color:;" title='試題資源標題:高中物理熱學和電學部分演示實驗flash動畫(下)
發 布 人:klyzren
瀏覽次數:134 人次
整理時間:2008-10-12 22:57:07' target=_blank> 高中物理熱學和電學部分演示實...</a></td></tr>
<tr height=20><td><B>·</B><a href='Down/view.asp?id=42' style="color:;" title='試題資源標題:高中物理熱學和電學部分演示實驗flash動畫(上)
發 布 人:klyzren
瀏覽次數:76 人次
整理時間:2008-10-12 22:46:11' target=_blank> 高中物理熱學和電學部分演示實...</a></td></tr>
<tr height=20><td><B>·</B><a href='Down/view.asp?id=40' style="color:;" title='試題資源標題:2008年會考模擬試卷
發 布 人:klpwb
瀏覽次數:83 人次
整理時間:2008-10-6 23:04:22' target=_blank> 2008年會考模擬試卷</a></td></tr>
<tr height=20><td><B>·</B><a href='Down/view.asp?id=38' style="color:;" title='試題資源標題:地理教學FLash--洋流的形成分布及影響
發 布 人:笑紅塵
瀏覽次數:62 人次
整理時間:2008-9-25 13:29:41' target=_blank> 地理教學FLash--洋流的形成分布...</a></td></tr>
<tr height=20><td><B>·</B><a href='Down/view.asp?id=37' style="color:;" title='試題資源標題:地理教學演示Flash地形雨的形成
發 布 人:笑紅塵
瀏覽次數:35 人次
整理時間:2008-9-25 13:26:51' target=_blank> 地理教學演示Flash地形雨的形成...</a></td></tr>
<tr height=20><td><B>·</B><a href='Down/view.asp?id=36' style="color:;" title='試題資源標題:地理教學演示Flash
發 布 人:笑紅塵
瀏覽次數:68 人次
整理時間:2008-9-25 13:19:31' target=_blank> 地理教學演示Flash</a></td></tr>
</td></tr>
</table>
<table border=0><tr><td height=3></td></tr></table></td>
</tr>
</table>
</td>
</tr>
<tr valign=top>
<td height="18" colspan="3"><table cellspacing=1 cellpadding=4 class=table_Home>
<tr><td class=td_Home>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<tr>
<td class=dtd_Home>搜索導航</td>
</tr>
</table>
<tr><td class=bg_Home align=center>
<table border="0" cellspacing="1" cellpadding="4">
<form action='/Common/search.asp' method=get onsubmit="javascript:frm_submitonce(this);">
<tr>
<td><img border=0 src='/Skin/Skin_1/main/ico_search.gif' align=absmiddle> </td>
<td> <input type=text name=keyword value='' size=20 maxlength=20 title='多個關鍵字請用 空格 格開' class=bg_search></td>
<td>
<select name=sea_type>
<option value='news'>學校新聞</option>
<option value='article'>德育之窗</option>
<option value='nian'>輝煌的一中</option>
<option value='xiaoyou'>校友天地</option>
<option value='bumeng'>部門時訊</option>
<option value='zhaosheng'>招生錄取</option>
<option value='jiaoyan'>教研教學</option>
<option value='shizill'>師資力量</option>
<option value='down'>試題資源</option>
<option value='video'>一中視頻</option>
<option value='photo'>校園圖庫</option>
<option value='forum'>交流論壇</option>
</select></td>
<td> <input type=checkbox name=celerity value='yes'></td>
<td>快速搜索 </td>
<td valign=top><input type=submit class=btn value='搜 索'></td>
<td> <a href='/Common/search.asp?action=help' title='多功能搜索' style='cursor:help;'>搜索幫助?</a></td>
</tr>
</form>
</table>
</td></tr>
</table>
<table border=0><tr><td height=3></td></tr></table></td>
</tr>
</table>
<!---------------------------------登陸、新聞、文章、調查、公告、搜索 結束--------------------------------->
<!---------------------------------下載、商城 開始--------------------------------->
<!---------------------------------論壇、電影 開始--------------------------------->
<!---------------------------------酷站、市場、企業 開始--------------------------------->
<!---------------------------------酷站、市場、企業 結束--------------------------------->
<!---------------------------------圖庫、動畫 開始--------------------------------->
<!---------------------------------圖庫、動畫 結束--------------------------------->
<!---------------------------------友情連接 開始--------------------------------->
<!---------------------------------友情連接 結束--------------------------------->
</td>
</tr>
</table>
</td>
</tr>
</table>
<table border=0 width="965" cellspacing=0 cellpadding=0>
<tr>
<td width=* align=center class=bg>
<DIV id=headFind>
<DIV id=headForm><SPAN id=menuFind>
<DIV align=center>
<A class=h_td href="/Common/GuestBook.asp">網站留言</A> -
<A class=h_td href="/Common/Links.asp">友情鏈接</A> -
<A class=h_td href="/Common/Online.asp">與我在線</A> -
<a class=h_td href="mailto:[email protected]">校長郵箱</a> -
<A class=h_td href="#top">TOP</A> </DIV></SPAN></DIV></DIV>
<DIV id=headV2>
<DIV align=center>Copyright &; 2006-2009 <A href="http://www.klyz.cn" target=_blank><B><FONT face=Arial>www.</FONT><FONT face=Arial color=#cc3300>klyz</FONT><FONT face=Arial>.cn</FONT></B></A> All Rights Reserved.
<SCRIPT language=JavaScript src="http://s127.cnzz.com/stat.php?id=1056402&web_id=1056402&show=pic" charset=gb2312></SCRIPT>
</DIV>
<DIV align=center><FONT face=Verdana><FONT face=Verdana>校址:貴州省凱里市文化北路30號 郵 編:556000</FONT></DIV>
<DIV align=center>
<DIV align=center><FONT face=Verdana>聯系電話:0855-8506108 傳真:0855-8503668</FONT></DIV></FONT></DIV>
<DIV align=center><A href="http://www.klyz.cn" target=_blank>凱里一中版權所有</A> </DIV></DIV></td>
</tr>
</table>
</center>
</body>
</html>
F. 誰用過CC皮膚盒子,怎麼樣啊
可以放心使用,封號的幾率很小,操作說明都有,注意點基本不會封號。舉個例子,騰訊最擅長的封號手段是直接查看你的後台程序,只要看到有疑似外掛的軟體在運行就會封號。cc盒子在使用的時候明顯可以看到游戲運行後是關閉了的,而且cc網址是官方承認的,和TGP是一個性質的軟體,至於cc網址弄出這個cc盒子,不敢說絕對不會封號,不過大可放心使用。注意點使用說明和版本更新就沒問題。希望這些能幫到你
G. mfc skinplusplusu是開源的嗎
首先,MFC本身就是開源的,絕大部分源碼都可以在VC的安裝目錄找到,這是最規范的源碼教程,也是進階學習必看的代碼。 其次,MFC和「漂亮界面」實在是很難掛鉤。用MFC做漂亮界面確實是很困難的一件事,需要編寫大量的代碼。vckbase上有大量MFC代碼...
H. direct3d 如何載入多個x文件
.......
當然能啦,你看看DXUT的源碼,里邊是不是有模型類?
你聲明兩個模型,分別載入兩個不久OK了??
#pragma once
#include "AllocateHierarchy.h"
class CSkinMesh
{
private:
CAllocateHierarchy* m_pAlloc;
LPDIRECT3DDEVICE9 m_pd3dDevice;
LPD3DXFRAME m_pFrameRoot;
D3DXMATRIXA16* m_pBoneMatrices;
UINT m_NumBoneMatricesMax;
private:
HRESULT SetupBoneMatrixPointers( LPD3DXFRAME pFrame );
HRESULT SetupBoneMatrixPointersOnMesh( LPD3DXMESHCONTAINER pMeshContainerBase );
HRESULT LoadFromXFile(WCHAR* strFileName);
VOID UpdateFrameMatrices( LPD3DXFRAME pFrameBase, LPD3DXMATRIX pParentMatrix );
VOID DrawFrame(LPD3DXFRAME pFrame);
VOID DrawMeshContainer(LPD3DXMESHCONTAINER pMeshContainerBase, LPD3DXFRAME pFrameBase);
public:
D3DXVECTOR3 m_vObjectCenter;
float m_fObjectRadius;
BOOL m_bPlayAnim;
LPD3DXANIMATIONCONTROLLER m_pAnimController;
public:
HRESULT OnCreate(LPDIRECT3DDEVICE9 pD3DDevice, WCHAR* strFileName);
HRESULT Render(D3DXMATRIXA16* matWorld, float fElapsedAppTime);
HRESULT OnDestory();
public:
CSkinMesh();
virtual ~CSkinMesh();
};
//=============================================================================
// SkinMesh.cpp: 蒙皮網格模型類的實現
//=============================================================================
#include "dxstdafx.h"
#include "SkinMesh.h"
//--------------------------------------------------------------------
// Desc: 構造函數和析構函數 Construction/Destruction
//--------------------------------------------------------------------
CSkinMesh::CSkinMesh()
{
m_bPlayAnim = true;
m_pd3dDevice = NULL;
m_pAnimController = NULL;
m_pFrameRoot = NULL;
m_pBoneMatrices = NULL;
m_NumBoneMatricesMax = 0;
m_pAlloc = new CAllocateHierarchy();
}
//-----------------------------------------------------------------------------
// Desc: 構造函數和析構函數
//-----------------------------------------------------------------------------
CSkinMesh::~CSkinMesh()
{
D3DXFrameDestroy(m_pFrameRoot, m_pAlloc);
SAFE_RELEASE(m_pAnimController);
delete m_pAlloc;
}
//-----------------------------------------------------------------------------
// Desc:創建並載入蒙皮網格模型
//-----------------------------------------------------------------------------
HRESULT CSkinMesh::OnCreate(LPDIRECT3DDEVICE9 pD3DDevice, WCHAR *strFileName)
{
HRESULT hr;
m_pd3dDevice = pD3DDevice;
hr = LoadFromXFile(strFileName);
if(FAILED(hr))
return hr;
return S_OK;
}
//-----------------------------------------------------------------------------
// Desc: 從文件載入蒙皮網格模型
//-----------------------------------------------------------------------------
HRESULT CSkinMesh::LoadFromXFile(WCHAR *strFileName)
{
HRESULT hr;
//根據文件名, 從指定的路經查找文件
WCHAR strPath[MAX_PATH];
DXUTFindDXSDKMediaFileCch( strPath, sizeof(strPath) / sizeof(WCHAR), strFileName );
//從.X文件載入層次框架和動畫數據
V_RETURN(D3DXLoadMeshHierarchyFromX(strPath, D3DXMESH_MANAGED, m_pd3dDevice,
m_pAlloc, NULL, &m_pFrameRoot, &m_pAnimController));
//建立各級框架的組合變換矩陣
V_RETURN(SetupBoneMatrixPointers(m_pFrameRoot));
//計算框架對象的邊界球
hr = (m_pFrameRoot, &m_vObjectCenter, &m_fObjectRadius);
if (FAILED(hr))
return hr;
return S_OK;
}
//--------------------------------------------------------------------------
// Desc: 僅在LoadFromXFile中調用。調用子函數SetupBoneMatrixPointersOnMesh()
// 安置好各級框架(實際上是各個骨骼)的組合變換矩陣。
// 注意: 在這里其實並沒有計算出各個骨骼的組合變換矩陣,只是為每個矩陣開辟了相應
// 的存儲空間,真正的計算是在函數CSkinMesh::UpdateFrameMatrices()中完成的。
//---------------------------------------------------------------------------
HRESULT CSkinMesh::SetupBoneMatrixPointers(LPD3DXFRAME pFrame)
{
HRESULT hr;
if (pFrame->pMeshContainer != NULL)
{
hr = SetupBoneMatrixPointersOnMesh(pFrame->pMeshContainer); //調用子函數
if (FAILED(hr))
return hr;
}
if (pFrame->pFrameSibling != NULL)
{
hr = SetupBoneMatrixPointers(pFrame->pFrameSibling); //遞歸
if (FAILED(hr))
return hr;
}
if (pFrame->pFrameFirstChild != NULL)
{
hr = SetupBoneMatrixPointers(pFrame->pFrameFirstChild); //遞歸
if (FAILED(hr))
return hr;
}
return S_OK;
}
//-----------------------------------------------------------------------------
// Desc: 僅在SetupBoneMatrixPointers()中被調用,設置每個骨骼的組合變換矩陣
//-----------------------------------------------------------------------------
HRESULT CSkinMesh::SetupBoneMatrixPointersOnMesh(LPD3DXMESHCONTAINER pMeshContainerBase)
{
UINT iBone, cBones; // cBones表示骨骼數量,iBone表示循環變數
D3DXFRAME_DERIVED *pFrame;
//先強制轉為擴展型
D3DXMESHCONTAINER_DERIVED *pMeshContainer = (D3DXMESHCONTAINER_DERIVED*)pMeshContainerBase;
// 只有蒙皮網格模型才有骨骼矩陣
if (pMeshContainer->pSkinInfo != NULL)
{
//得到骨骼數量
cBones = pMeshContainer->pSkinInfo->GetNumBones();
//申請存儲骨骼矩陣的空間
pMeshContainer->ppBoneMatrixPtrs = new D3DXMATRIX*[cBones];
if (pMeshContainer->ppBoneMatrixPtrs == NULL)
return E_OUTOFMEMORY;
for (iBone = 0; iBone < cBones; iBone++)
{
//找到框架
pFrame = (D3DXFRAME_DERIVED*)D3DXFrameFind(m_pFrameRoot, pMeshContainer->pSkinInfo->GetBoneName(iBone));
if (pFrame == NULL)
return E_FAIL;
//將框架的組合變換矩陣賦值給對應的骨骼的復合變換矩陣
pMeshContainer->ppBoneMatrixPtrs[iBone] = &pFrame->CombinedTransformationMatrix;
}
}
return S_OK;
}
//-----------------------------------------------------------------------------
// Desc: 更新框架並繪制框架
// (1)用m_pAnimController->AdvanceTime()設置時間,m_pAnimController是
// 類LPD3DXANIMATIONCONTROLLER的一個對象
// (2)用函數CSkinMesh::UpdateFrameMatrices()更新框架
// (3)用函數CSkinMesh::DrawFrame()繪制框架
//-----------------------------------------------------------------------------
HRESULT CSkinMesh::Render(D3DXMATRIXA16* matWorld, float fElapsedAppTime)
{
if( 0.0f == fElapsedAppTime )
return S_OK;
if (m_bPlayAnim && m_pAnimController != NULL)
m_pAnimController->AdvanceTime( fElapsedAppTime, NULL );
UpdateFrameMatrices(m_pFrameRoot, matWorld); //調用子函數
DrawFrame(m_pFrameRoot); //調用子函數
return S_OK;
}
//-----------------------------------------------------------------------------
// Desc:計算各個骨骼的組合變換矩陣
//-----------------------------------------------------------------------------
VOID CSkinMesh::UpdateFrameMatrices(LPD3DXFRAME pFrameBase, LPD3DXMATRIX pParentMatrix)
{
D3DXFRAME_DERIVED *pFrame = (D3DXFRAME_DERIVED*)pFrameBase;
if (pParentMatrix != NULL)
D3DXMatrixMultiply(&pFrame->CombinedTransformationMatrix, &pFrame->TransformationMatrix, pParentMatrix);
else
pFrame->CombinedTransformationMatrix = pFrame->TransformationMatrix;
if (pFrame->pFrameSibling != NULL)
{
UpdateFrameMatrices(pFrame->pFrameSibling, pParentMatrix);
}
if (pFrame->pFrameFirstChild != NULL)
{
UpdateFrameMatrices(pFrame->pFrameFirstChild, &pFrame->CombinedTransformationMatrix);
}
}
//-----------------------------------------------------------------------------
// Desc: 繪制框架.
// 先用CSkinMesh::DrawMeshContainer()繪制一個LPD3DXMESHCONTAINER類型
// 的變數pMeshContainer.然後遞歸繪制同一級框架和子一級框架。
//-----------------------------------------------------------------------------
VOID CSkinMesh::DrawFrame(LPD3DXFRAME pFrame)
{
LPD3DXMESHCONTAINER pMeshContainer;
pMeshContainer = pFrame->pMeshContainer;
while (pMeshContainer != NULL)
{
DrawMeshContainer(pMeshContainer, pFrame); //調用子函數
pMeshContainer = pMeshContainer->pNextMeshContainer;
}
if (pFrame->pFrameSibling != NULL)
{
DrawFrame(pFrame->pFrameSibling);
}
if (pFrame->pFrameFirstChild != NULL)
{
DrawFrame(pFrame->pFrameFirstChild);
}
}
//-----------------------------------------------------------------------------
// Name: DrawMeshContainer()
// Desc: Called to render a mesh in the hierarchy
//-----------------------------------------------------------------------------
VOID CSkinMesh::DrawMeshContainer(LPD3DXMESHCONTAINER pMeshContainerBase, LPD3DXFRAME pFrameBase)
{
D3DXMESHCONTAINER_DERIVED *pMeshContainer = (D3DXMESHCONTAINER_DERIVED*)pMeshContainerBase;
D3DXFRAME_DERIVED *pFrame = (D3DXFRAME_DERIVED*)pFrameBase;
UINT iMaterial;
UINT iAttrib;
LPD3DXBONECOMBINATION pBoneComb;
UINT iMatrixIndex;
UINT iPaletteEntry;
D3DXMATRIXA16 matTemp;
if (pMeshContainer->pSkinInfo != NULL) //如果是蒙皮網格
{
//檢查是否使用軟體頂點混合
HRESULT hr;
//如果當前硬體不支持, 則使用軟體頂點處理
if (pMeshContainer->UseSoftwareVP)
V( m_pd3dDevice->SetSoftwareVertexProcessing(true) );
//啟用索引頂點混合
if (pMeshContainer->NumInfl)
m_pd3dDevice->SetRenderState(D3DRS_INDEXEDVERTEXBLENDENABLE, true);
//根據影響當前網格模型頂點的骨骼數量, 設置需要使用的混合矩陣索引數量
if (pMeshContainer->NumInfl == 1)
m_pd3dDevice->SetRenderState(D3DRS_VERTEXBLEND, D3DVBF_0WEIGHTS);
else if(pMeshContainer->NumInfl == 2)
m_pd3dDevice->SetRenderState(D3DRS_VERTEXBLEND, D3DVBF_1WEIGHTS);
else if(pMeshContainer->NumInfl == 3)
m_pd3dDevice->SetRenderState(D3DRS_VERTEXBLEND, D3DVBF_2WEIGHTS);
else
m_pd3dDevice->SetRenderState(D3DRS_VERTEXBLEND, D3DVBF_3WEIGHTS);
//逐個子網格渲染進行渲染
pBoneComb = reinterpret_cast<LPD3DXBONECOMBINATION>(pMeshContainer->pBoneCombinationBuf->GetBufferPointer());
for (iAttrib = 0; iAttrib < pMeshContainer->NumAttributeGroups; iAttrib++)
{
//設置混合矩陣
for (iPaletteEntry = 0; iPaletteEntry < pMeshContainer->NumPaletteEntries; ++iPaletteEntry)
{
iMatrixIndex = pBoneComb[iAttrib].BoneId[iPaletteEntry];
if (iMatrixIndex != UINT_MAX)
{
D3DXMatrixMultiply( &matTemp, &pMeshContainer->pBoneOffsetMatrices[iMatrixIndex],
pMeshContainer->ppBoneMatrixPtrs[iMatrixIndex] );
m_pd3dDevice->SetTransform( D3DTS_WORLDMATRIX( iPaletteEntry ), &matTemp );
}
}
//設置材質和紋理
m_pd3dDevice->SetMaterial( &pMeshContainer->pMaterials[pBoneComb[iAttrib].AttribId].MatD3D );
m_pd3dDevice->SetTexture( 0, pMeshContainer->ppTextures[pBoneComb[iAttrib].AttribId] );
//渲染子網格模型
pMeshContainer->MeshData.pMesh->DrawSubset( iAttrib );
}
//恢復頂點混合狀態
m_pd3dDevice->SetRenderState(D3DRS_INDEXEDVERTEXBLENDENABLE, FALSE);
m_pd3dDevice->SetRenderState(D3DRS_VERTEXBLEND, D3DVBF_DISABLE);
//恢復頂點處理模式
if (pMeshContainer->UseSoftwareVP)
V( m_pd3dDevice->SetSoftwareVertexProcessing(false));
}
else // 如果只是普通網格,在添加材質後就繪制它。
{
m_pd3dDevice->SetTransform(D3DTS_WORLD, &pFrame->CombinedTransformationMatrix);
for (iMaterial = 0; iMaterial < pMeshContainer->NumMaterials; iMaterial++)
{
m_pd3dDevice->SetMaterial( &pMeshContainer->pMaterials[iMaterial].MatD3D );
m_pd3dDevice->SetTexture( 0, pMeshContainer->ppTextures[iMaterial] );
pMeshContainer->MeshData.pMesh->DrawSubset(iMaterial);
}
}
}
//-----------------------------------------------------------------------------
// Desc: 釋放蒙皮網格模型
//-----------------------------------------------------------------------------
HRESULT CSkinMesh::OnDestory()
{
delete this;
return S_OK;
}
//=============================================================================
//Desc: AllocateHierarchy.h
//=============================================================================
#pragma once
//-----------------------------------------------------------------------------
// Desc: 繼承自DXDXFRAME結構的結構
//-----------------------------------------------------------------------------
struct D3DXFRAME_DERIVED: public D3DXFRAME
{
D3DXMATRIXA16 CombinedTransformationMatrix;
};
//-----------------------------------------------------------------------------
// Desc: 繼承自D3DXMESHCONTAINER結構的結構
//-----------------------------------------------------------------------------
struct D3DXMESHCONTAINER_DERIVED: public D3DXMESHCONTAINER
{
LPDIRECT3DTEXTURE9* ppTextures; //紋理數組
LPD3DXMESH pOrigMesh; //原始網格
DWORD NumInfl; //每個頂點最多受多少骨骼的影響
DWORD NumAttributeGroups; //屬性組數量,即子網格數量
LPD3DXBUFFER pBoneCombinationBuf; //骨骼結合表
D3DXMATRIX** ppBoneMatrixPtrs; //存放骨骼的組合變換矩陣
D3DXMATRIX* pBoneOffsetMatrices; //存放骨骼的初始變換矩陣
DWORD NumPaletteEntries; //骨骼數量上限
bool UseSoftwareVP; //標識是否使用軟體頂點處理
};
//-----------------------------------------------------------------------------
// Desc: 該類用來從.X文件載入框架層次和網格模型數據
//-----------------------------------------------------------------------------
class CAllocateHierarchy: public ID3DXAllocateHierarchy
{
private:
HRESULT GenerateSkinnedMesh(D3DXMESHCONTAINER_DERIVED *pMeshContainer);
HRESULT AllocateName( LPCSTR Name, LPSTR *pNewName );
void RemovePathFromFileName(LPSTR fullPath, LPWSTR fileName);
public:
STDMETHOD(CreateFrame)(THIS_ LPCSTR Name, LPD3DXFRAME *ppNewFrame);
STDMETHOD(CreateMeshContainer)( THIS_ LPCSTR Name,
CONST D3DXMESHDATA* pMeshData,
CONST D3DXMATERIAL* pMaterials,
CONST D3DXEFFECTINSTANCE* pEffectInstances,
DWORD NumMaterials,
CONST DWORD * pAdjacency,
LPD3DXSKININFO pSkinInfo,
LPD3DXMESHCONTAINER *ppNewMeshContainer);
STDMETHOD(DestroyFrame)(THIS_ LPD3DXFRAME pFrameToFree);
STDMETHOD(DestroyMeshContainer)(THIS_ LPD3DXMESHCONTAINER pMeshContainerBase);
};
//=============================================================================
//Desc: AllocateHierarchy.cpp
//=============================================================================
#include "dxstdafx.h"
#include "AllocateHierarchy.h"
#pragma warning(disable: 4995)
//-----------------------------------------------------------------------------
// Desc:
//-----------------------------------------------------------------------------
HRESULT CAllocateHierarchy::AllocateName( LPCSTR Name, LPSTR *pNewName )
{
UINT cbLength;
if( Name != NULL )
{
cbLength = (UINT)strlen(Name) + 1;
*pNewName = new CHAR[cbLength];
if (*pNewName == NULL)
return E_OUTOFMEMORY;
memcpy( *pNewName, Name, cbLength*sizeof(CHAR) );
}
else
{
*pNewName = NULL;
}
return S_OK;
}
//-----------------------------------------------------------------------------
// Desc: 從絕對路徑中提取文件名
//-----------------------------------------------------------------------------
void CAllocateHierarchy::RemovePathFromFileName(LPSTR fullPath, LPWSTR fileName)
{
//先將fullPath的類型變換為LPWSTR
WCHAR wszBuf[MAX_PATH];
MultiByteToWideChar( CP_ACP, 0, fullPath, -1, wszBuf, MAX_PATH );
wszBuf[MAX_PATH-1] = L'\0';
WCHAR* wszFullPath = wszBuf;
//從絕對路徑中提取文件名
LPWSTR pch=wcsrchr(wszFullPath,'\\');
if (pch)
lstrcpy(fileName, ++pch);
else
lstrcpy(fileName, wszFullPath);
}
//-----------------------------------------------------------------------------
//Desc: 生成蒙皮網格模型(含有每個頂點的混合權重、索引和一個骨骼組合表)
//-----------------------------------------------------------------------------
HRESULT CAllocateHierarchy::GenerateSkinnedMesh(D3DXMESHCONTAINER_DERIVED *pMeshContainer)
{
HRESULT hr = S_OK;
if (pMeshContainer->pSkinInfo == NULL)
return hr;
SAFE_RELEASE( pMeshContainer->MeshData.pMesh );
SAFE_RELEASE( pMeshContainer->pBoneCombinationBuf );
//獲取網格模型索引緩沖區
LPDIRECT3DINDEXBUFFER9 pIB;
if (FAILED(hr = pMeshContainer->pOrigMesh->GetIndexBuffer(&pIB)))
return E_FAIL;
//獲取影響一個面(三角形)的矩陣數量
DWORD NumMaxFaceInfl;
hr = pMeshContainer->pSkinInfo->GetMaxFaceInfluences(pIB, pMeshContainer->pOrigMesh->GetNumFaces(), &NumMaxFaceInfl);
pIB->Release();
if (FAILED(hr))
return E_FAIL;
//影響一個面的矩陣數量不會超過12
NumMaxFaceInfl = min(NumMaxFaceInfl, 12);
//獲取當前設備的能力
IDirect3DDevice9* pd3dDevice = DXUTGetD3DDevice();
D3DCAPS9 d3dCaps;
pd3dDevice->GetDeviceCaps( &d3dCaps );
//根據當前設備能力和NumMaxFaceInfl, 設置在進行骨骼蒙皮調色時使用骨骼數量的上限
if( (d3dCaps.MaxVertexBlendMatrixIndex+1)/2 < NumMaxFaceInfl )
{
pMeshContainer->NumPaletteEntries = min(256, pMeshContainer->pSkinInfo->GetNumBones());
pMeshContainer->UseSoftwareVP = true;
}
else
{
pMeshContainer->NumPaletteEntries = min( (d3dCaps.MaxVertexBlendMatrixIndex+1) / 2,
pMeshContainer->pSkinInfo->GetNumBones() );
pMeshContainer->UseSoftwareVP = false;
}
//生成蒙皮網格模型
hr = pMeshContainer->pSkinInfo->ConvertToIndexedBlendedMesh
( pMeshContainer->pOrigMesh,
0,
pMeshContainer->NumPaletteEntries,
pMeshContainer->pAdjacency,
NULL, NULL, NULL,
&pMeshContainer->NumInfl,
&pMeshContainer->NumAttributeGroups,
&pMeshContainer->pBoneCombinationBuf,
&pMeshContainer->MeshData.pMesh);
return hr;
}
//-----------------------------------------------------------------------------
// Desc: 創建框架, 僅僅是分配內存和初始化,還沒有對其成員賦予合適的值
//-----------------------------------------------------------------------------
HRESULT CAllocateHierarchy::CreateFrame(LPCSTR Name, LPD3DXFRAME *ppNewFrame)
{
HRESULT hr = S_OK;
D3DXFRAME_DERIVED *pFrame;
*ppNewFrame = NULL;
pFrame = new D3DXFRAME_DERIVED; //創建框架結構對象
if (pFrame == NULL)
{
return E_OUTOFMEMORY;
}
//為框架指定名稱
hr = AllocateName(Name, (LPSTR*)&pFrame->Name);
if (FAILED(hr))
{
delete pFrame;
return hr;
}
//初始化D3DXFRAME_DERIVED結構其它成員變數
D3DXMatrixIdentity(&pFrame->TransformationMatrix);
D3DXMatrixIdentity(&pFrame->CombinedTransformationMatrix);
pFrame->pMeshContainer = NULL;
pFrame->pFrameSibling = NULL;
pFrame->pFrameFirstChild = NULL;
*ppNewFrame = pFrame;
pFrame = NULL;
return hr;
}
太多了,自己回去看。
I. 問:這是什麼播放器,很簡潔。在哪裡可以找到。
2.至於解碼那個,其實系統自帶的是能打開wmv和avi等視頻文件,如果要打開rm或者rmvb等文件就需要解碼了,格式不同......
也就是說 你下載解碼器用系統自帶的播放器可以播放 用自己做的也可以播放
3.界面啊 可以用vcskin控制項 皮膚文件很多的
4.要注意的其實我用播放器個人而言就是不要太吃內存和CPU 資源佔用盡量小點,主要你自己用方便自己最重要。。
5.至於這點其實留著源碼等自己寫出來看什麼地方不足完全可以修改,沒什麼特意留什麼空間的。。。
6.應該不需要了,不過我也沒弄過,不好說。
J. 開源cms系統那個好要開源的
wordpress這個開源cms是不錯的啊,很好用的,而且還是免費的。