Yes this will disable the translation and well done for trying this because you will now understand why.
You have to multiply the matrices together to acheive the combination of translating and rotating. Here's an example:
D3DXMATRIXA16 matWorld, matTrans, matRot;// Make the world matrix an identity, does nothing yetD3DXMatrixIdentity( &matWorld );// Make the translation matrixD3DXMatrixTranslation( x, y, z );// Make the rotation matrix,D3DXMatrixRotationX( float angleInRadians );// There are two ways of multiplying them together to achieve different results// 1) Translate then rotateD3DXMatrixRotation( matWorld, matWorld, matTrans );D3DXMatrixRotation( matWorld, matWorld, matRot );// 2) Rotate then translateD3DXMatrixRotation( matWorld, matWorld, matRot );D3DXMatrixRotation( matWorld, matWorld, matTrans );
The first multiplication gives a rotation of the object around the origin, from wherever you translated it to, the second rotates it on the origin and then moves it out to the translated position thus making it look like the object is rotating on the spot.
Hope that helps some more,
Dave